[eluser]Daniel H[/eluser]
Okay I figured out my country and state problem. Basically the field_data function doesn't play nicely with db caching, which I hadn't disabled. So basically every time I need to do an 'include_related' or similar, I need to turn the db cache off and then turn it back on again.
Essentially field_data returns an empty array if the cache is enabled, since the data cannot be cached. Quite frustrating!