[eluser]OverZealous[/eluser] @bojack
There's only two places that DMZ clears the _instantiations array. Either immediately after processing a normal get query (in the _process_query function, which is only used in get and query), or the _clear_after_query function, which is only used when calling get_raw or get_sql.
You could insert some debugging code into the _process_query and _to_object functions to output the results of the $_instantiations variable.
If the array is correctly configured (it's a map of related_field => array(db_column => instantiated_field), then something is wrong with creating and assigning the related column.
It's possible that the version of PHP you have on the server doesn't like the assign-by-reference used for _get_without_auto_populating. If you don't use auto_populate (which I recommend you don't), you could try changing line 5956 from this: