I thought I would get hammered by my comment, and sure enough . . .
This is often an excellent way to learn, since there are many experts on this forum and in-depth users.
I use the technique I mentioned, assigning the same CCs to the same controls in each instance of VI Pro. For example, the horizontal component (usually a keyswitch) of instrument articulations in a VI Pro instance I always assign to CC#3. This makes it easy to make a change when I want to alter an articulation in a track.
Now, I have NOT examined (or noticed) that if I change a CC#3 value for one VI Pro instrument, it changes that same CC#3 value for all the rest of the VI Pro instances. I DO assign separate channels within VE Pro to each of the VI Pro instances (as well as separate VE Pro ports at the top of each instrument channel), and I also do the same channel assignment for the track in which that instrument "resides" within Logic. I say "resides", because the track is created when I set up VE Pro as a multi-timbral software instrument, and my "Bb Clarinet" for example on the track, is actually a reference to the Bb Clarinet within VE Pro. I follow the VSL suggested technique of making the FIRST Logic Track instance of VE Pro (channel 1), blank, so that it mirrors the Master channel in the VE Pro instances, with my first instrument starting at channel 2. This saves me the trouble of renumbering the channel assignments within VE Pro.
I will check out whether a change to a CC# value in one channel changes a CC# value in another, even where VI Pro instances within VE Pro are assigned specific channels and ports. I suspect it does, something I have not as yet noticed, or you would not have written the post as you did. If true, then this is, indeed, a serious shortcoming.
I am not a big fan of Track Automation within Logic, because it is not so easy to see instrument settings travel about in Regions as you move or copy them in the composition process. By comparison with CC# values, it provides a rather loose and sloppy control of instruments. Technically, you can move or copy Track Automation, but you cannot easily see (or even place) PRECISELY where in the time stream of a composition they affect a parameter, and it is cumbersome to confirm that a copy or move has occurred. One must open up Automation Mode to see the Automation nodes within a given Track. Using CC# values, one can precisely place a change in value using the List editor within Logic, an editor that lists each step within the MIDI file in order. I find this much easier than using a keyswitch in the Piano editor. I wouldn't rely on my experience here, because I am not that great an expert or experienced a user. Still, this is what I have noticed at this point.
Off we go!!
Steve