Assuming your external ip is 1.2.3.4, your router/gateway is 192.168.0.1 and your local ip is 192.168.0.2, consider the following:
your computer (192.168.0.2) -> router (192.168.0.1 -> 1.2.3.4) -> internet (stormy cloud with pictures of hackers and stuff :P)
Because you have (probably) selected the 'server' method to find your ip address, both mIRC clients will be claiming their ip is 1.2.3.4. This will work for outside connections because your router will forward the request to the right machine, but for connections inside your network 1.2.3.4 doesn't represent anyone on your network (all computers inside your network see all other computers on the network with their real local ip).
There are some solutions to this, but they aren't 'transparant', you will have to make special adjustments for local to local connections:
Enable the DCC server on your machine and use /dcc chat 192.168.0.2:59 (or 127.0.0.1 for same-computer connections).
Change the ip in Options > Connect > Local info to your local address (192.168.0.2 for multiple pcs, 127.0.0.1 for same-computer connections) before you initiate a server-based dcc send or chat to a local computer, then change it back when you want to send/chat with someone over the internet.
I would think (well, it seems pratical and logical) that some routers would be able to, when receiving a packet destined for the external (NAT) ip they would filter the destination port against their own port-forwarding list and 'bounce' the message back into the local network where appropriate. This is probably some routing protocol I've never heard of.
The above applies (sort of) to a single PC on your network or for multiple PCs, I hope its of some help.