There is one thing I am able to do on Receptor that I have not been able to achieve on Mainstage. Very specifically - to change Ivory patches from my keyboard without reloading all of my other plugins. So I can be playing organ, for example, while the piano sound is changing from say a grand to an upright. I DO wish to reload samples, but only those samples, and not the plugin itself.
I guess that my misunderstanding comes from the fact that I don't know neither Receptor or Ivory. But I also know that changing from systems sometimes require to think and work differently...
(I take for granted that you understand the MainStage's Concert-Set-Patch levels concept and implication.)
The best way I have been able to do this in Mainstage is to have 2 separate instances of Ivory loaded in a set, one with each sample set. This is doable on this scale, but now say I want to be able to choose between 6 or 7 sample sets...now it starts to get problematic.
When you load a Concert file, MainStage load in RAM memory all the plugins and affiliated samples and their settings you have programed it to. Some 3rd party sample players such as Kontakt4 offer the option to play direct from hard disk the samples, so it is less hungry RAM-wise. One of the main benefits to hold in memory all the settings, plugins and samples is the instantaneous handling of the various sounds in your concert (no need to wait for the samples to load in RAM) and the ability to let the previous sounds still ring while you start playing another one in a next MainStage patch.
Mainstage seems to be able to save patches in its own format, but doesn't seem to allow you to call them up via program change for third party plugins.
MainStage has its own patches system, which are remotely MIDI controllable; but these are totally independent (and different from the patches belonging to the instantiated plugins -namely Ivory for instance- into the MainStage's either at Concert, Set or Patch level).
It is also possible to issue MIDI Program Changes of (or to) an instantiated plugin (like Ivory/Synthogy, without resorting to the method you describe which is indeed quite RAM costly).
For this, I suggest you create a knob or slider on the Layout page (in MainStage) that will respond (via the Learn) to the hardware knob or slider of your hardware MIDI controller (keyboard), which you will map (on the Edit page of MainStage) to the "Program Change" function of your Ivory plugin. You could also (if you wish) assign either a different hardware MIDI controller (or the same one, to more than one function, either other plugins Program Changes or what ever your plugin can respond MIDI-wise to, or even MainStage functions itself).