So what you need to do is this:
Make your pfSense VM have two network cards. The first one is a bridged adapter connected to your ethernet port, and the second one is an internal network. The name should be intnet, this is fine. Then, boot up pfSense. Set your em0 adapter (your WAN connection, which should be your bridged) to DHCP, and set your em1 adapter (your LAN connection, which is the intnet) to an IP of 192.168.100.1, with a subnet mask of 24. This makes pfSense be a true router.
Now, create a Linux or Windows VM. Set the network adapter to be on internal network, with the name intnet. This means that this VM is essentially connected to a virtual switch with the router. Set the static IP of the Linux or Windows VM to 192.168.100.2, subnet mask of 255.255.255.0. The gateway needs to be 192.168.100.1.
Logically, think of it like you have a switch, and the router is plugged into one port, and the PC plugged in right beside it. The router has another port that is connected to "The Internet". When the PC looks for a network, it goes to 192.168.100.1, which is the router's IP address on that port. The router knows to send all traffic out to the WAN port, which essentially tunnels the traffic out to your router. I have this set up at home, and am able to run an entire domain of Windows Servers, Linux Servers, and desktops using this setup. If this seems a little confusing, I can upload a video later today or post some screenshots or something. Last time I explained this setup I used a whiteboard
Just quote me if you have questions, I've rambled on for long enough.