In case anyone still wants to do this, I was able to configure my pfSense to connect to PIA using WireGuard.
Steps:
1 - Use scripts from GitHub - pia-foss/manual-connections: Scripts for manual connections to Private Internet Access to connect to PIA. Just clone the repository and run ./run_setup.sh
2 - Follow the setup steps from #1 and the scripts will generate a file: /etc/wireguard/pia.conf
3 - Open this file on a text editor. You will find the following information for you to configure your WireGuard tunnel and peer through the pfSense Web UI:
Address: 10.1.149.3 (or whatever is in your pia.conf). You must use this address on a NEW pfSense interface you must create (make sure to select static IP address for it) which is associated with the WireGuard tunnel.
PrivateKey: xxxxxyuyyyyyyxxxyxyxyxyx → you will use this during the creation of the new WireGuard tunnel in pfSense. Enter this on “Interface Keys / private key”
Peer config:
PublicKey: xhxhxhxhxhxhxhxhxxhxh → copy and paste this to a new peer you’re associating with your newly-created WG tunnel
AllowedIPs: 0.0.0.0/24 → copy/paste on your new peer
EndPoint: somePIA-FQDN.com:1337 → copy and paste this to your new peer. Make sure you de-select dynamic endpoint
4 - You need to configure outbound NATs on pfSense using the new interface for all traffic from 192.168.1.1/24 (or whatever your LAN network address is)
5 - You need to configure a gateway for your new interface.
6 - Use policy routing to route all traffic from your LAN (or desired network) to the newly-created gateway from #6.
Hope this helps, it’s working for me. With WireGuard I can get 900mbps down and up from PIA, rather than the ridiculous 300mbps I was getting with OpenVPN connected to the same servers.