mIRC does it's best to discover your IP address for DCC. With those options, mIRC is relying on what an IRC server reports back to be your gateway IP. This is updated upon any new connection to an IRC server. Naturally if you're using a BNC which is a middle man between you and the IRCd, the irc server will report back the BNC's ip thus breaking DCC.
The best way around this is to use uPnP instead.
For Windows Vista and beyond: (I think, I'm on 7)
#1. Enter your routers config and ensure uPnP support is enabled.

#2. Open Network and Sharing center, and go into "Change advanced sharing settings" from the left list of choices, and ensure "network discovery" is enabled.

#3. Open up "Devices and Printers" and ensure Windows itself has discovered your router. if not, any further config in mIRC is pointless.

#4. in mIRC, open "alt+o > IRC > Options > Ports" and ensure uPnP support has the IP address checked, and also DCC connections is checked.

#4a. If you've checked these before, you may have gotten a "warning" dialog about failed to detect uPnP. Even tho these remain enabled, you may need to uncheck them all, restart mIRC and try checking them again. If you get no warning this time about detecting uPnP, you should be successfully configured.