If you want to save yourself some trouble just set the MTU to the minimum in all of your devices( 1280 B ).
n:~#ifconfig ipv6-iface mtu 1280
If you want to use the maximum MTU possible or figure out who broke IPv6 when you find it broken you could send ICMP echo requests of the most commonly used MTU sizes to each of the intermediate routers until you find which MTU do not make it through which router.
The most common MTU sizes are 1280 B and 1480 B. However, there are devices that are set to use 1472 B, 1460 B or 1452 B and the most default interface configurations use an MTU of 1500 B.
When debugging MTU sizes it helps to remember that an IPv6 header is 40 Bytes and that ICMPv6 headers are 8 Bytes long. Therefore, if you want to figure out if an MTU of 1280 Bytes will work across a path ( This should work always ) try ICMP echo requests
with a payload of 1280 B - 40 B - 8 B = 1232 B.
ares:~#ping6 -s 1232 ipduh.com -c1 PING ipduh.com(hermes.ipduh.com) 1232 data bytes 1240 bytes from hermes.ipduh.com: icmp_seq=1 ttl=46 time=83.6 ms --- ipduh.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 83.627/83.627/83.627/0.000 ms
Don't forget that traceroute6 is your friend.
I also find http://ipduh.com/ipv6/traceroute helpful.
IPv6 MTU size debugging