Yes you can do all of that.
Q1. If you have firewall rules in place pfSense will route traffic between the subnets. You can access a server at, say, 192.168.3.10 from a machine at 192.168.2.20 by simply entering it's IP. No need to bridge the subnets which would effectively make one big subnet. If you want to access servers by name you can add DNS overide entries to allow that. One area that can cause problems here is if you want to browse network shares. Generally the client OS will only look for servers inside it's own subnet. If you are running Windows clients and you have a Windows server you can specify the address of that as the WINS server in the DHCP information which will allow clients to know where to look.
Q2. Yep, port forwards are easy enough and well documented.
https://doc.pfsense.org/index.php/How_can_I_forward_ports_with_pfSense%3F
Q3. Yep, traffic shaping on a per IP basis can be done.
A better configuration would be to bridge your router so that your public IP is on the pfSense WAN interface. That will, as you say, make port forwarding easier.
Steve