First of all:
Do not forget to backup config on both boxes before and after config changes.
Answers:
1)2)3)If you have two boxes, use only carps for fail-over. Configure a full redundant firewall configuration.
all ips on each interface(vlan or real) must be on same subnet too. The vhid must be unique for each virtual ip and it is used to check health between boxes on each interface(vlan or real) with carp enabled.
If it is a layer2 switch, you will not be able to route between vlans. you will need a layer3 switch.
Create vlans as much as you need at pfsense, vmware and switch.
create carps on each interface for fail-over between firewalls.
Set these virtual ips as gateways on each vlan/virtual machine.
Considerations:
Do not forget to configure a sync interface between boxes.
After all carp settings done, use firewall rules do block/permit what you need(ping, www, ssh,etc).
Read this if you want to setup a first level DOS prevention on your network.
http://forum.pfsense.org/index.php?topic=38273.0