Forgive me if I've understood your question wrong. It seems to me that the best solution to this is to use the connector pane of a VI. You can wire controls and indicators of a VI to a front connector pane. Therefore, when this VI is "dropped" into the diagram of another VI, you can pass arguments into it (including a filename) and read outputs from it.
On your BMO VI, go to the front panel. On the upper right hand corner is an icon of the VI. Right click on it, and select "Show Connector". The connector pane of this VI is shown. Usually, it defaults to a connector pane which has a suitable number of input and output terminals for the number of controls and indicators on your front panel. As a rule of thumb, though, I select a connector pane which has 3 or 4
more terminals than what I need, so I can expand later if I need them.
Right click on the connector pane on the upper right hand corner again, and select "Patterns". This will allow you to select the connector pane you wish to use. Normally, inputs are wired to the left or top of the VI; outputs are to the right or bottom.
Now that you have your connector pane picked, wire your controls/indicators to the pane by using the wiring tool and clicking once on the control/indicator, and then once on the terminal you wish to use. (Controls are inputs, indicators are outputs)
Save the VI. Now, when you put that VI on the diagram of another VI, you can wire arguments to it to get the correct file, etc.
Mark