This example will show how to use a master vi to dynamically create multiple clones of a .vit that will all run in parallel and maintain their own references so they can keep running after the master vi is finished and will close out after each clone is done running.
Master.vi

To use this VI, tester.vit must be stored in the same folder as master.vi. It will open the close with the front panel open and will transfer ownership of the reference to the new clone.
Tester.vi

The tester.vit is just any VI, in this case it is a simple program that displays a counter value. The important thing to note is the invoke node that closes the front panel after the VI is finished.
Example code from the Example Code Exchange in the NI Community is licensed with the MIT license.
I know this post is old, but I hope somebody's checking in...
How can I pass data into a .vit when calling it with a VI Server?
I have a front panel tool that I need to be able to open additional copies as the user deems necessary, and I need to be able to pass initial data into the new instance of the tool.
I was trying to prototype this with a reentrant sub-vi, but the recursive nature prevents me from using any choice of front panel, only the last opened will function.