I have had some trouble with LVClass objects and Objects from different Libraries (including compressed libraries). I was trying to write a VI, which was renaming all Objects in a Projects so it would be from a different Library (so I could change between Lvlib and lvlibp). I encountered 2 issues.
1. Changing the Type of Reference Constants is rather difficult. I could not find a way to access (read out) the Type of a typed reference constant (i.e. References on TypeDefinitions in other VIs). Especially dynamically casting References seems to be an issue as well as References on Queues and strict VIs. In general the issue is to access the "strict" information of a reference.
For some of these Issues (queue constant i believe a workaround is possible by converting into control, changing, and converting back to constant).
2. Changing the Hierachy of Objects does not seem to be easily accessible. Reading this out is no issue, but changing does not seem to be possible.