This, or MIDIyoke creates virtual ports and is lightweight. MIDI-OX is better for programming and debugging though.
If you have access to the app source you should be able to rewrite the code to use DirectSound or FluidSynth to play MIDI rather than touch the serial port.
If not, two dirty-hack options come to mind: you can loop the serial line's output back into the computer with a USB MIDI device(classically, MIDI goes over a 9-pin connection, presumably you already have a solution for serial-to-9-pin with the original setup) or you might be able to poll outgoing serial traffic and remap it with some code.