Haven't done this myself, but I'm mostly sure this will work. Disable the WAN NIC on your Ubuntu system, iface <interface> inet manual in the /etc/network/interfaces file, (it shouldn't need address info) and then ifdown <interface> it. This will prevent the Ubuntu machine from using it to access the internet. In VirtualBox, the pfSense VM will need to have two NIC cards installed in Bridged Mode. This should allow it access to both NICs, (the WAN won't have an IP address but the bridging should allow it full access to the card). From here you can do your LAN DHCP or use static IP addresses and the NIC on the WAN should get its IP from the router or use a static IP as well. Release and renew all of your LAN IP addresses so that they know to use the pfSense VM as a gateway. Done.
EDIT:
I missed a bit of your question, so here's some more. You can either set all of the VMs to use bridged mode on the LAN and have them access pfSense that way, (not recommended since it will use up a lot of resources). Or you can add a third adapter on the pfSense VM that is set to Internal Network, and set your VMs to use Internal Network as well. Using Internal Network removes the need for the hardware NIC to be accessed and all networking access will be virtualized, which should be faster since it's not waiting on hardware. Have pfSense route all of the traffic from the LAN and Internal Network to each other if you want the LAN and VMs to access each other.