@al:
If accepted this fix is likely to enter pfSense v. 2.4.3.
Excellent! I'm running 2.4.2 so moving to .3 is totally an okay solution for me.
I shall not rule out that something else could be wrong in your specific setup.
Are you able to see the DHCPv6 leases in the menu of Diagnostics under the menu item NDP Table?
I can see the dynamic lease that I was expecting to see, yes. So it's probably due to the parser problem that your patch fixes. Since it's a small network, I can get on each client and find out their DUID, and create the static mappings manually.
I don't see any other DHCPv6 leases at all, though; neither dynamic nor statically mapping. The rest of the NDP table, other than the router itself, are just the link-local addresses. (So they're… not even asking for an address? I would expect the Android phones to just languish in IPv4 until I get around to turning on SLAAC, but the laptops ought to be sending v6 solicitation packets... unless Windows 10 gets that wrong too... They all seem to be making use of IPv6 even without the DHCPv6 leases, so this approach to a more thorough control of the local network is clearly incomplete.)
Sorry, rambling aloud now. Going to call the problem solved, and then turn off the dual stack until I can figure out a better way to do this. Maybe use only ULAs combined with prefix translation, if that's even supposed to work with a tunnel provider on the outside... I need more sleep.
Thank you for your help, al!