Well, this is from ea.com regarding BF3:
If you are playing on PC, please enable the following online ports on your connection:
TCP: 80, 443, 9988, 20000-20100, 22990, 17502, 42127
UDP: 3659, 14000-14016, 22990-23006, 25200-25300
But these are all outgoing, so in theory, with uPNP enabled there shouldn't be any issues with multiple PC's playing on a LAN (unless there's a bug I don't know about)
I found this on a gaming site:
eg) Edit each computers BF3 executable to include the " -port XXXXX" (as long as each PC uses a different port)
Computer A = "C:\Program Files (x86)\Origin Games\Battlefield 3\bf3.exe -port 10000"
Computer B = "C:\Program Files (x86)\Origin Games\Battlefield 3\bf3.exe -port 10001"
Computer C = "C:\Program Files (x86)\Origin Games\Battlefield 3\bf3.exe" -port 10002"
Although, this was a solution for playing BF3 with multiple PC's on a LAN... WITHOUT...uPnP... it may be a workaround if you are positive you have UPnP enabled on PFsense.
I would do the following:
1. disable software firewalls on local pc's
2. In PFsense, double check that UPnP is ENABLED on the LAN interface (services -> UPnP & NAT-PMP). If you upgraded from an earlier version, try toggling UPnP off and on... I've seen that work for other services.
3. make sure the UPnP service is running on your PC's (open the services snap-in (services.msc) then look for "UPnP Device Host")