I routinely have 4-5 instruments loaded into a single Kontakt instance, and may have 2 or 3 instances altogether, giving me 10-15 different instruments, and I NEVER have to sit there and switch midi channels to be able to play any one or more of those instruments at a time, as I move from track to track.
1) Load up to 5 instruments into a single Kontakt instance - I always remove all checks from the Insert Soft Synth Dialog Box, except for it to open the Synth Property Page, the Recall Assignable Controls, and the Ask This Every Time boxes. Kontakt will by default automatically increment the midi channel for each instrument as it loads, and by default will also route each loaded instrument's output to the stereo 1 and 2 outs. Make note of which order you loaded the instruments, as that will be the order of the ascending midi channels (1, 2, 3, 4, 5).
2) Make sure the Output Section is made visible in the Kontakt instance. We have to fix the audio outputs, and I also always rename each output channel.
3) At the top of the Output Section, is a little drop-down with some options - Click on that to open its drop-down and then hover your mouse over the Batch Functions to get its drop-down opened. Click on the option that tells it to: Clear Output Section and create one individual channel for each loaded instrument. (This will do exactly that, and result in each loaded instrument being routed to its own separate stereo output channel)
4) At this point, each output channel name will be an attempt to squish each instrument's name into the limited space for the output channel name. While this works, it reads horribly, SO, I always double-click on each output channel name, then do a CTRL+A to select whatever characters are there, then give it a new name, that fits better and makes it easier to read which instrument that channel is assigned to. (so, instead of Bob - New York Grand etc... I just rename it to Piano, Organ, Violins, Bass, etc), and do so for each of the output channels. This makes it way easier when making the routing assignments for the corresponding Audio Tracks for each instrument (Piano Left mono, Piano Right mono, etc)
5) OK so now in the Track Pane, I insert a left and right audio track and a midi track, for each loaded instrument, and name each track appropriately (I usually do this vertically naming each track - Piano Left, Piano Right, Piano Midi, Organ Left, Organ Right, Organ Midi, etc)
6) I then go back through each track again and set panning (I have a left and right), and also set each audio track's Input parameter to pick up the appropriate OUTPUT from that instrument from that Kontakt instance.
7) Each midi track will need to have its OUTPUT set to the Kontakt instance its instrument is loaded into. The Input parameter I will set to one of my three midi controllers specifically, on Omni - so Axiom - Omni, for example. Now, this leaves things incomplete, as each instrument is contained within the same Kontakt instance, so we still need to separate them, by midi channel, which is why I earlier mentioned making note of which instrument was loaded in which order, since it will be automatically assigned midi channel, 1, 2, 3, 4, 5...... SOOOO, if my Piano instrument was loaded first in the Kontakt instance, it will be assigned to midi channel 1. SO, for the Piano midi track, I set the Midi Output Channel parameter (right under the FX bin), to Kontakt 1 (midi channel 1). Do this for each of the other instruments as well, so each midi track will have the correct midi channel sent to the Kontakt instance, resulting in the proper instrument playing when that midi track is in focus (and/or has its midi echo on button lit).
So after doing the above, your midi controller will never need to have its midi channel changed on the controller, as each midi track is set to Omni, for that controller. Since we told Sonar to override whatever midi channel was actually present when a note on the controller is pressed, with the midi channel we set in that track's Midi Output Channel parameter, when the data is sent to the Kontakt instance for that midi track, the correct midi channel to trigger notes for only THAT instrument results in only sound from THAT instrument to play - which is then picked up in the appropriate Audio Tracks (by our setting the Input parameter assignments for each audio track to the correct instrument).
I DO hope the above makes some sense - I am too danged sleepy to try all of that again. (please do let me know if I need to take another stab at explaining any of the above, and though it wouldn't be til a decent hour in the morning, I would indeed try to explain better).
Bob Bone