IPv6 TotalLength & PayloadLength & aren't calculated properly. I looked at code and saw UpdateCalculatedValues was not overrided by IPv6Packet.
var buffer = new byte[100];
var packetv6 = new IPv6Packet(IPAddress.IPv6Loopback, IPAddress.IPv6Loopback)
{ Protocol = PacketDotNet.ProtocolType.Gre };
packetv6.PayloadData = buffer;
packetv6.UpdateCalculatedValues();
packetv6.TotalLength is expected 140 but it is 40
packetv6.PayloadLength is expected 100 but it is 0