Call me Bert'
What I was thinking is to have posted something that other people here can play with, so maybe throw the odc file with code! I realise there may be privacy issues, so it does not have to be the faulty one, but make one up with 2 or 3 blocks for testing purposes.
In the Samples folder for ODCL, there is a lisp file named demo, when you run it; a feature to show blocks within the dwg using blockviewer would be useful to check yours!
Come to think of it, this one shows 3D Objects with no hassles, so maybe the problem is in the making of blocks on the fly?
Have you tried to use force_update? Change the order of display - perhaps the 3D first? Do not display in Render mode but just 2D wireframe...