There are a few ways to do this. With whatever application you are using the midi file in (ProTracks, RealBand, etc., you will have to edit the patches and save either as another midi file or the application native file. In Protacks, BBW, Realband, load the patch map you want to use for a given track. In BBW, check the save with patches settings (and make sure the patches you want actually get to the midi file). Without that...

If you look at the midi events, you'll find that the patch/bank settings are controlling the voice/instrument for a given channel(at the beginning of the events, and perhaps at other patch changes further along). YOu can also edit that in the midi events view of most apps. Easiest way is to load the instrument map (patch map in BBW/Realband) in the application and change it. As long as the synthesizer (software or hardware) supports other than GM, your should be able to reassign patches.

Richard