Sounds like your router is attempting to perform ALG functions, especially because you specified "behind certain routers". I've yet to see one that doesn't screw it up horribly.
This isn't something mIRC can do anything about, since the router is messing directly with the packets. Disable the functionality in the router or use a server port other than 6667 (I haven't seen one yet that did this stuff on ports other than 6667).
Connect to a server on a port other than 6667 and test a send/resume, I bet the ports will match.
What I suspect is happening is the router doesn't recognize DCC resumes. It is altering the ip/port in the CTCP message when you first send the file but it is not doing it to the resume message, thus the discrepancy.