This is probably duplicated elsewhere, but this at least bumps this up a bit. Mileage may vary, but it was the solution that got things running.
My router is:
Add-on dual port NIC
Pfsense 2.2.4 (as of this post)
Port 1 - IPV4 LAN
Port 2 - IPV6 LAN
Port 1 - IPV4 WAN
Port 2 - IPV6 WAN
IPV4 /29 static block
I am going to assume this will work correctly for a single WAN and a single LAN port sharing IPV4/IPV6
Interfaces -> WAN -> IPV6 Config Type -> DHCP6
Interfaces -> WAN -> DHCPv6 Prefix Delegation size -> 60 (this is what made it work for me)
Interfaces -> LAN -> IPV6 Config Type - Track Interface
Interfaces -> LAN -> IPV6 Prefix ID - 0
I had been fighting this for months with no success, came across a posting on the PFSsense boards ( https://forum.pfsense.org/index.php?topic=98044.msg546082#msg546082) and as soon as I set the /60, all of my connections began working. Hope it helps.
Per the RFC https://tools.ietf.org/html/rfc3633 there is no size your supposed to be using.
The netgear's appear hard coded to hand back a /60 - if you leave that at 0 then the Netgear will delegate a /60.
If pfsense does not work with that set to 0 then you have a bug in pfsense.
For others trying to get pfsense to work with CG3000DCR and the LAN wont get an IPv6 IP, change the network id prefix to "a" or something within the range. I set pfsense up just as OP mentioned except having one NIC for both v4 and v6 and LAN nic wont get IPv6 and devices connected to it would not either. After changing network prefix id to "a", LAN nic got IPv6 from DHCP6 on netgear. If you have multiple NICs, like one for wireless, you'll need to use a different network id anyhow as pfsense will complain otherwise.