did you setup the NAT rules after you initially setup your PF rules? I bet you're not reloading the NAT rules. 'pfctl -R -f /etc/pf.conf' will only reload the PF ruleset. NAT is not included in that. In order to do NAT you must do 'pfctl -N -f /etc/pf.conf'.
Let me know that works. And if it does, 'man pfctl' for more info on crazy flags it uses. :-)
BTW, my NAT rule just looks like this.
"nat on $ext_if inet -> ($ext_if)"
Just does NAT on the external interface and rewrites all outgoing packets with the IP of the external interface.
PF is simply amazing...