Ok so I found this on another website about pfSense -
NAT Limitations
PPTP and GRE Limitation - The state tracking code in pf for the GRE protocol can only track a single session per public IP per external server. This means if you use PPTP VPN connections, only one internal machine can connect simultaneously to a PPTP server on the Internet. A thousand machines can connect simultaneously to a thousand different PPTP servers, but only one simultaneously to a single server. The only available work around is to use multiple public IPs on your firewall, one per client, or to use multiple public IPs on the external PPTP server. This is not a problem with other types of VPN connections. A solution for this is currently under development.
AFAIK, this is a problem in TCP/IP's design since NAT only translates UDP or TCP. GRE cannot be translated. No firewall I'm aware of "fixes" this problem.