MainStage doesn't even require to change the MIDI channels.
Just add one keyboard object or MIDI LED per controller to the workspace and assign it to the controller. Done. Now you can use these objects as inputs to your channel strips. If you ever want to change a controller, you only have to change the assignment once and it will work in all patches immediately. You can easily see the routine in the Assign & Mapping table.
I think you simply didn't understand this level of indirection and missed that many instruments ignore the MIDI channel, which means: they would listen to all your controllers.