First, check the Ethernet WAN cable. The ISP generally provides you a copper handoff to your router and that cable could be bad. That would make the most sense at this point since one bad conductor would limit you to 100Mbs.
I'd then try a direct connection with the laptop via Ethernet cable to the ISP copper handoff bypassing your router. You should be getting at least 900Mbs at that point.
The connection from SW-A to SW-B should be a VLAN trunk -- ie tagged (all vlans assigned assigned would normally be the default). VLANs have to be defined on both switches.
The connection from SW-A to the router would also be configured as a VLAN trunk - ie tagged.
The only difference is how the router would be configured. From a Juniper/Cisco perspective, you would create subinterfaces for each tagged VLAN and assigned them the VLAN Id's of the tagged ports. Each subinterface would have an IP address corresponding to the network's default gateway. I'm not sure if the PFSense is different -- I never use this software for a router.
VLAN 1 is normally considered special because it would be the native VLAN on most switches so would be an untagged VLAN. If this is unintended, the easiest thing would be to change the VLAN number and tag it. Alternatively if the switch and router allow it, simply change the native VLAN to something besides 1. It it's intentional then do nothing.