This seems like a Kompakt problem. In gigastudio, you could just send a program change in midi to the new articulation. As far as I know, there is no way to tell kompakt to change to a new program on the fly (is there??) -- so your method of using different tracks, or different channels in one track, seems pretty smooth. But it does require some midi event editing.
For sonar, here is a tiny cal program that changes the channel number of all selected midi events. You could select all the notes of a given articulation, after all the entry is done, and change the channel.
;; set_channel.cal Set Midi Channel for selected events.
(include "need20.cal") ; Require version 2.0 or higher of CAL
(int new_chan 1) ; New Midi Channel number
(int i 0) ; index for moving through
(getInt new_chan "New Midi Channel: " 1 16 )
(-= new_chan 1)
(= Event.Chan new_chan )
(++ i) ; this counts
(pause "Adjusted " i " channel events!" )