I don't understand your statement. The DUID gets recreated on each reboot, and the comcast DHCPv6 server identifies my router only by the DUID... so it thinks I keep changing routers each time a reboot.
Can you do a packet dump on the DHCPV6 handshake - I'm not in a spot where I can do this myself, nor do I have access to the last round of traces I captured at the moment (not at home right now)
Remember, there's three ways to represent DUID (Time/LinkLayer Addr is one, the other LinkLayer only, and the last is vendor uniquely defined UID associated with the enterprise name).
So if pfSense is using DUID-LLT and the server is expecting DUID-LL or DUID-EN, then that's a real problem, as we get into part of the spec which has an evil work "
SHOULD NOT" as in should not change, it's not a shall not change, which suggests that they can indeed change and still be compliant - which drives people nuts that work on this kind of stuff.
The packet capture should show the handshake and what is sent by pfSense. You only need to capture on ports UDP346 and UDP347, but even without filtering those ports, it should show up...
Also, note what model/firmware version is in use for your cable modem, and you're on Comcast if I recall correctly...
This actually may be related to the similar issue that I chanced to discuss with CoxHSI tier 4 (network engineering).