First of all, allow me to congratulate you on getting this to work. This could be a useful feature and I will think about whether or not I should use it myself for certain things.
The main reason this isn't working for you second window is that FindWindow will no longer help you since it doesn't find child windows, so it can't get the handle to the child window. You have 2 options. You can use FindWindow and build the chain from the bottom (if possible). This means you turn a window into a child, then you turn the parent into a child and so on. This has the disadvantage of only allowing you to add new child windows to the top level parent window.
The second option is to use FindWindowEx which does find child windows. Its structure is slightly different (you can find it in MSDN, use U32 for the handles), but it should work if you give it the right names. You will have to write some logic for when to use FindWindow and when to use FindWindowEx and you will have to modify LabUseful's VI or create a copy of it for this to work.
One last thing you should watch out for is the window names. The names change according to the VI state - If it's running, just the name. If not, there is also "Front Panel". There could also be an asterix. If you give it a unique name, it could also change. This will probably not matter in runtime, but it could be an issue during development.
Last thing, please don't post the same question to multiple threads. The most this can do is annoy people who see they wrote a long response (like this one) and then see that someone already gave a response in another thread. Also, have patience. These things take time.
Hope this helped.
___________________
Try to take over the world!