So ICMP (ping) works and DNS also works (port 53 UDP/TCP) but ordinary web-browsing does not work (TCP port 80 and 443).
If there is traffic coming back from your browser actions that is being blocked then that means the states are somehow not being created (or not created right) when the initiating browser request packets go out through pfSense.
Your description of all your settings sounds fine and should "just work".
Do some packet capture to know exactly what packets are received on LAN, sent out WAN, and what comes back in to WAN. That will at least make you confident in what flows where and how far.
Then when you are really stuck, post screenshots of settings, as there must be something odd that you have accidentally done.