I have (all USB connections):
Maudio MIDIsport - one hardware device but 2 MIDI in/out ports.
Maudio Uno
Edirol PCR-300 (shows up in Sonar as multiple ports)
Novation controller
Cakewalk UA-101
Doepfer Dark Time (or Dark Energy, depending on how I connect things).
All work without problems at the same time. So there's no issue in Sonar that prevents multiple MIDI ports being used at the same time.
Therefore the problem would indeed appear to be routing or possibly drivers. Firstly, are you sure you've got the track(s) you want to accept input set to "input echo"?
After that, check the routing, and try and avoid the "omni" setting.
As for the driver side of things, it's a good idea to install hardware manufacturer's drivers for MIDI devices if they provide them rather than rely on Window's built-in native support, especially if the manufacturer's drivers are multi-client.
It may be that if the native drivers are being used Windows is seeing them as sharing a driver and therefore only allowing the first connected to be used. I've not seen this myself but have seen it turn up as an issue on other forums (not just for Sonar) a few times.
My first suspicion though is either input echo is off or routing not set correctly. I've certainly been caught out by both many times :-/