I struggled to use the tool appropriately I think. Part of that was difficultly rolling back entirely with SVN. It's been a month since I worked on it so my memory is already fuzzy, but I didn't want to leave you hanging.
My setup is this:
I have two projects, one for a GUI, and one for Real-Time. The added complication is that the Real-Time has two targets that use the same base library. Because of this, LabView locks any classes that are used in both (so almost all of them). Locking means you can change the VIs contents but cannot add VIs nor can you rename them. I have one class that is an ethernet Driver to talk to a device and another class (call it Thread) that is a child to a main server class. The Thread contains an instance of the Driver as it gets information from the Driver and translates it to be put in the tag database. The error about flattened data might be because the Real-Time project cannot change the Thread's data types, such as the Driver, since the Thread is locked due to being "multiple times in memory".
I haven't looked at your code details, but the only way to fix this kind of thing is to edit the class without a project being open, but then how would you find where it is being used. If the multiple targets is the issue, it might not worth making a workaround since most people probably aren't like me and would have a project per target. I like having multiple targets because then when I fix a bug in one, I can quickly update the other to match. But I'm new to real-time like this so maybe this isn't SOP for others.