I'd start as most do on the network. Physical layer. (unless you know there was some recent changes made to the network or PFSense).
Check all hardware including the switch, pcs, cabling etc… for any issues.
I'd start by checking the modem. If you have a static IP on it you can configure a NIC on a laptop to the static IP and connect it to the LAN of the modem. Remove all other connections and test the modem speeds on a laptop. If all is well reconnect it back to normal and move onto the next step.
Bypass the switch and next test the PFSense box, plug the LAN from the PFSense into your laptop. Check the connection at this point. Is it slow or stable at correct speeds? If not the obviously the problem is with the PFSense box and not the remaining items on the LAN.
If it is, then do the same troubleshooting method for the switch. Swap it out with spare for a test. Reboot the switch, do speeds return to normal then die out over time? etc....
Pinepoint the item causing the issues first. Then you can troubleshoot the cause.
Just a side note about running PFSense in a Hyper-V.
I just installed PFSense for my home network and reviewed online documentation that stated to use legacy network adaptors in the VM. When I did that I noticed I was getting very poor download speeds and other packet loss issues. I changed it back to the default adaptors and had no issues since. A lot of the online documentation and videos for setting up in Hyper-V are out-dated and incorrect for today's technologies and recent PFSense releases.