Pay attention to when and which VI tree creates the queue first. It is because the queue is automatically destroyed when this VI tree stops.
For example, Instance1.vi starts and creates the queue. Instance2.vi starts and uses the queue for data exchange with Instance1.vi. Instance1.vi, the creator, quits then the queue is destroyed. The queue refnum copy hold in Instance2.vi is invalid. If you then start Instance3.vi, it recreates the queue with the same name, but with a different refnum. This is a new, different queue so that Instance2.vi and Instance3.vi can't communicate using it.
The solution is to create the queue in a VI that will run as long as the queue is required, such as in the main Top Level VI.