I remember a bug in PD that if you create an instance of an abstraction (even by hand with ctrl+1) which contains dsp objects, its content doesn't start doing dsp processing until one more object is created (i.e. it is not added to the dsp chain when it should).
If more than one object (abstraction instances) are created in one message-tree (i.e. triggered by one "bang"), _maybe_ all of them will be mute until the creation of any new object in a separate message tree.
So a workaround in your case could be to programmatically create some "dummy" object after creating new "attack generators" and "pitch shifter". If the guess I have exposed in the second paragraph is correct, you will need at least a [delay 0] before the creation of the dummy object.
However I think you could implement the whole thing without dynamically creating objects, by acurately arranging sends, receives (with and without tilde), throw~s, catch~s, statically creating a big number of "allocatable" objects (capable of playing one table now, another one later etc according to messages they receive), managing polyphony (maybe with [poly]) and of course, switch~ing off every object that is not playing...
By the way I don't see anything inconvenient at all in what you asked :)
ciao m.