There are a few issues here to address. First, don't have VIs that you build with the same name as ones in LV distribution--ever. That will resolve many of the problems it sound like you are having. The basic rule here is to only use a VI name once--and the ones in the VI.llb directory are already taken.
Next, you can't force LV to open a particular copy of a VI. It will use the first one it finds. For example, if the VI is already open, a new VI opening up will use that one regardless of which one you had installed originally. If the VI isn't already open, LV will look in the last place where you saved it. If it can't find it there it start doing a search of the directories listed in the "VISearchPath" line of the application's *.ini file.
Finally, a way
of reducing the size of the big plugin common library is delete from it any files that already exist in the main part of the application. (This task is easier if you build the main executable such that it has a small *.exe and a seperate library.)
Also it might be helpful if you could breakup the plugins into related families of operations (i.e. acquisition, gui, signal processing, etc).
Finally, you might want to take a monent and ponder whether several hundred plugins are really necessary, or are you writing code that is perhaps a teeny bit over-specialized. It's just that several-hundred seems like an awful lot of unique plugin functions... Don't mean to step on your toes, but it's a question that needs to be asked.
Mike...