SSH connection to Mac works from the outside but not locally
The router does the NAT on the external interface. However when you ssh to your WAN address the router will recognize packets coming in on on the internal interface as being sent to its own address and will just send them to its local port 22. What you want does exist but isn't often supported, it's called "NAT loopback".

See NAT Loopback Routers