It probably is my router. While searching for solutions to my problem I found a lot of people complaining about my particular router/internet provider. That thing you said about dolphin connecting through a server also explains why dolphin was using two ports while it was running (something I found out while troubleshooting). What's strange is that forwarding the other port didn't work either, so I'm at a loss.
I posted a more detailed explanation to my problem on the Project M subreddit. Unfortunately I can't link it since I just made this account today
If anyone is interested in reading it it's titled "Strange netplay issue". I might update this post later with an actual link.
I thought I'd make a post here too for others who might experience the same problem (and since I saw that you were very quick to reply
)
As I said, using my external IP + port number worked just fine. It's just not as desirable as the normal method.