Starcraft needs UDP port 6112 forwarded both in and out, not TCP, and is only needed if you are the one hosting the game. The TCP connection is only used for chat over battle.net, and doesn't need to be forwarded because it's only made by your machine to the b.net server once and then kept open. You shouldn't need any port forwarding just to connect to a server online. Your machine connects to battle.net on TCP port 6112 to make the initial connection. When you connect to a game, your computer uses UDP port 6112 to connect to the server.
The problem is that your router is using a single external IP address to connect. If you both try to connect to the same server, the router doesn't know how to handle the traffic because two different internal IPs are connecting to the same remote server IP, on the same port. The router's mapping of NAT translations gets confused. Computers A and B both connect to server A, on the same port. Server A responds to one of you, how does the router know which one of you the response is meant for?
If you both connect to different servers, then depending on the router, it may be able to handle it just fine. The router uses certain information in the packets and in the NAT table so that it knows that even though you're both using the same port, the traffic is going to different remote IP addresses. So when the return traffic comes back, it knows that the traffic from server A is meant for computer A, and traffic from server B is meant for computer B.
The special application settings may be interfering, since the only use for that is with applications that automatically need to open certain ports. Starcraft doesn't. It only uses port 6112. Also, if you have the firewall enabled on an SMC router, you'll need to allow TCP port 6112 in through the firewall.
Dunno what you're messing with port 5190 for. That's used for messaging programs.