Here's one way ....
1. Set up the notes you want to use as "patch change" notes in Setup (you will be mapping controllers to midi note values). You only need midi on, and not midi off since you just want to change patches when you hit a note.
2. In Edit mode setup your control assigns for these notes at the Concert level
2. In Edit Inspector for a given note, select Attribute "on patch change, keep value), and then use the "current program number" Action, and set "save" "button on" and "button off" to the same program number (the one you want the button to take you to).
3. You can set a different program change # in each patch individually, or let MainStage set them automatically in order, starting with zero.
Simple enough, huh? (Its easier, of course, if you have a controller that sends programmable program changes!) This is all covered in the manual, but you have to study it and play with it quite a bit. Hope this helps....
Logic Pro 10.0.3, OSX 10.8.5, Mac Mini Server 2.0G quad i7 with 8G RAM.
External drive: Firewire, 400 Mb/sec, Journaled HFS+
Apogee Duet 2 (USB) I/O. Controllers: BCF2000, WX5 wind. A bunch of plug-ins. Some duct tape.