I figured it out!
It was my modem's settings. I had to forward the port I was using on my modem. It has it's own NAT which was enabled. For anyone who might be curious, my modem model is: SMCD3GN. The username / password were posted on a little sticker attached to the modem.
I've been struggling with this problem on and off for ages, and it never occurred to me that it was my modem that needed to be configured properly, and not my router.
Works like a charm now!