I significantly cleaned VR instancing up, fixing problems #1, #3 & #4 above:
Problems still exist, particularly in positioning of nested, instanced objects (as seen in the arms of the robot).
However, a bigger problem is revealing itself in performance numbers: for complex scenes (where improvement is needed the most), VR instancing so far appears to be slower. I don't fully understand it, and it might be an implementation issue. It might be the additional vertex calculations being made to transform instanced data when vertex count gets high. For simple scenes, and "medium" complexity scenes, VR instancing does seem to be faster. For example, when I am in the menu, and right when I start a game -- VR instancing is faster. However, as robots spawn & objects increase, the VR instancing scene gets slower faster.
I'll definitely leave all the VR instancing stuff in, and it may be useful for certain situations. I'd love to have an "ah-ha" moment to figure out why the very complex scene is slow... profiling does point to about ~7% of time spent filling buffers with all of the instancing data. However, even cutting this out completely wouldn't likely get us in the green in complex scenes.
Hard to work on fixing all the instance rendering oddities if consistent performance increases won't be where they are needed most.