I really don't see what's missing here. Your WAN interface has an IPv6 address, as does your LAN, and you said from the router you can ping6 to targets on the Internet.
Looking at the ipconfig from the Windows client that you posted it would seem it does have a default gateway:
Ethernet adapter LAN: Connection-specific DNS Suffix . : local.xxxxxx.com Description . . . . . . . . . . . : Broadcom NetLink (TM) Gigabit Ethernet [snip] IPv6 Address. . . . . . . . . . . : 2604:aaaa:bbbb:cccc:2533:9414:9a5b:311c(Preferred) Temporary IPv6 Address. . . . . . : 2604:aaaa:bbbb:cccc:4935:c92a:79fe:c05f(Preferred) Link-local IPv6 Address . . . . . : fe80::2533:9414:9a5b:311c%14(Preferred) [snip] Default Gateway . . . . . . . . . : fe80::f29f:c2ff:fe08:7a45%14
The default gateway IPv6 address is shown as the link local address we see in previous captures and as seen from the netsh with the 'Type' as 'Router'. Why that then means you don't get a default route in the routing table I'm not sure.
This is what I see on my clients.
Ethernet adapter Home_LAN: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Intel(R) 82579LM Gigabit Network Connection Physical Address. . . . . . . . . : 00-21-CC-6D-2B-49 [snip] IPv6 Address. . . . . . . . . . . : 2a00:xxxx:yyyy:zzzz:a039:ce9f:e009:15ae(Preferred) Temporary IPv6 Address. . . . . . : 2a00:xxxx:yyyy:zzzz:e9e5:d7c3:242b:572b(Preferred) Link-local IPv6 Address . . . . . : fe80::a039:ce9f:e009:15ae%6(Preferred) [snip] Default Gateway . . . . . . . . . : fe80::46d9:e7ff:fe50:5b7e%6
The default gateway is link local as you have, albeit the interface number after the link local address is 6 in my case and 14 in yours, but that's OK.
The only difference I can see on your clients is that you don't see the default route as I do:
C:\Users\smf22>route print -6 =========================================================================== Interface List 6...00 21 cc 6d 2b 49 ......Intel(R) 82579LM Gigabit Network Connection 13...02 00 4c 4f 4f 50 ......Microsoft KM-TEST Loopback Adapter 18...08 11 96 66 8b 51 ......Microsoft Wi-Fi Direct Virtual Adapter 2...0a 11 96 66 8b 50 ......Microsoft Hosted Network Virtual Adapter 10...00 50 56 c0 00 01 ......VMware Virtual Ethernet Adapter for VMnet1 16...08 11 96 66 8b 50 ......Intel(R) Centrino(R) Advanced-N 6205 8...94 39 e5 91 9a da ......Bluetooth PAN HelpText 1...........................Software Loopback Interface 1 =========================================================================== IPv6 Route Table =========================================================================== Active Routes: If Metric Network Destination Gateway 6 281 ::/0 fe80::46d9:e7ff:fe50:5b7e 1 331 ::1/128 On-link 6 281 2a00:xxxx:yyyy:zzzz::/64 On-link
Can you disable and enable IPv6 on one of your Windows clients whilst running something along the lines of tcpdump -i switch0 ip6 on the router? When you re-enable IPv6 you should see the client send an ICMPv6 Router Solicitation which should be followed by the router sending out an ICMPv6 Router Advertisement such as the following:
[snip] 39 3.864623 fe80::9dad:d7d5:90a8:f30c -> ff02::2 ICMPv6 70 Router Solicitation from 00:50:56:90:4b:79 40 3.864613 :: -> ff02::1:ffa8:f30c ICMPv6 78 Neighbor Solicitation for fe80::9dad:d7d5:90a8:f30c 41 3.865668 fe80::46d9:e7ff:fe50:5b7e -> ff02::1 ICMPv6 110 Router Advertisement from 44:d9:e7:50:5b:7e [snip]
Inside the Router Advertisment I'm seeing the following:
Internet Control Message Protocol v6 Type: Router Advertisement (134) Code: 0 Checksum: 0x0710 [correct] Cur hop limit: 64 Flags: 0x40 0... .... = Managed address configuration: Not set .1.. .... = Other configuration: Set ..0. .... = Home Agent: Not set ...0 0... = Prf (Default Router Preference): Medium (0) .... .0.. = Proxy: Not set .... ..0. = Reserved: 0 Router lifetime (s): 1800 Reachable time (ms): 0 Retrans timer (ms): 0 ICMPv6 Option (Prefix information : 2a00:xxxx:yyyy:zzzz::/64) Type: Prefix information (3) Length: 4 (32 bytes) Prefix Length: 64 Flag: 0xe0 1... .... = On-link flag(L): Set .1.. .... = Autonomous address-configuration flag(A): Set ..1. .... = Router address flag(R): Set ...0 0000 = Reserved: 0 Valid Lifetime: 2592000 Preferred Lifetime: 604800 Reserved Prefix: 2a00:xxxx:yyyy:zzzz:: ICMPv6 Option (Source link-layer address : 44:d9:e7:50:5b:7e) Type: Source link-layer address (1) Length: 1 (8 bytes) Link-layer address: Ubiquiti_50:5b:7e (44:d9:e7:50:5b:7e)
Regards