This is normal. What happens is that even if a socket on a certain port is freed, Windows may mark it as unusable for a period of time.
If mIRC is unable to open a socket on a certain port for a dcc transfer, it will automatically default to trying any available port.