I have had issues using maleable VIs (vim, the red ones): Placing one of these in my VIs worked fine in development environment, but building an executable led to a not working VI. Took me some time to find this. Everything works fine building an executable from VIs in a lvlib, my case not working uses the vim in a VI which is part of a lvclass (which itself inherits from a class in a PPL).
My conclusion is to avoid using vims.
You might want to have a look at this presentation DNatt did:
In the presentation, malleable VIs and PPLs were listed as 2 of the 3 biggest non-essential LabVIEW features that will often cause weird errors such as what you're mentioning (the 3rd one being Xnodes, which there's a good chance that you use and don't know that you use...).
I don't remember the exact phrasing and I'm not going to rewatch the whole thing just now, but I believe his recommendation was to continue using simple VIMs as they can be great, but to avoid VIMs used together with classes, PPLs, lvlibs, and XNodes, and to avoid VIMs being deeply nested (i.e. don't do a VIM in a VIM in a VIM...).
What I'm saying is that VIMs mostly work OK in isolation, so don't write them off completely, but in this particular case where you have a PPL, lvlib, class, and a VIM all at once, you're right to find another method.