The problem is more generic than I first thought. If I connect to a db other than the ezp db any and all eZp Object functions seem to return defined but empty objects.
I think there is a problem with the way I terminate my db connection (or don't terminate it). It seems eZp is getting confused with the mysql resource that I create by connecting to another db. eZp seems to be unable to accurately get information about eZp objects.
Again, if I remove the query everything runs fine. If I do my queries in another view and then $Module->redirectToView the results of the query, the objects (after the redirect) work fine as well.
Has anyone else run into this? Or does anyone know if I'm running the above query incorrectly, which could cause eZp's db connection to get messed up?