I have had similar problems in the past with overloaded patches that max has tantrums at. The only suggestion I could make would be to streamline the patch a little:
For instance, are you using all of the elements all the time. If not try using Poly~ or more simply mute~ to irradicate the sound passing through the patches, zeroing the cpu useage.
Also, if you have 2 intensive patches doing something similar, could you not once again use poly~ to make the sound polyphonic.
I wouldnt imagine you would get much of a performance boost by changing soundcards. But looking at it online, it is a PC card (correct me if this is wrong) which may mean that less audio processing is done onboard, leaving the grunt work on your processor. Maybe take your patches along to somewhere like sound control and try a few with USB/Firewire connections. See if you get any kind of boost.
you could try changing buffer size and latency in the dsp window, although im guessing low latency is important for your live stuff...
I had similar problems when i built a huge subtractive synth.My synth was ocassionally producing sub audible frequencies which caused massive spikes in cpu usage and quite ofen brought my computer to its knees...so i just put hard filters before the DAC at 20hz and 20khz which helped greatly.I also did some streamlining as talked about above using poly~.I found going back through the programming to refine and remove unwanted exras helpful as well.
I think there may even be some cpu limitors in max to stop it going over a certain level.may cause audio to stop but may well avoid a total freeze.Also check what other apps are running so max gets the lions share of your computers power.