To add more to my own debugging, it seems the original length should be attached as PSAMPLE_ATTR_ORIGSIZE.
The tool "psample" seems to be able to read sampling data as it happens. It too reports 128 as the original size:
(vrf:mgmt)bluecmd@xxx:~$ psample -m
group 1 in-ifindex 28 out-ifindex 27 origsize 128 sample-rate 100000 seq 107703
group 1 in-ifindex 28 out-ifindex 27 origsize 128 sample-rate 100000 seq 107704
group 1 in-ifindex 28 out-ifindex 27 origsize 128 sample-rate 100000 seq 107705
group 1 in-ifindex 28 out-ifindex 27 origsize 128 sample-rate 100000 seq 107706
group 1 in-ifindex 28 out-ifindex 27 origsize 128 sample-rate 100000 seq 107707
group 1 in-ifindex 28 out-ifindex 27 origsize 128 sample-rate 100000 seq 107708
group 1 in-ifindex 28 out-ifindex 27 origsize 128 sample-rate 100000 seq 107709
group 1 in-ifindex 28 out-ifindex 27 origsize 128 sample-rate 100000 seq 107710
group 1 in-ifindex 28 out-ifindex 27 origsize 128 sample-rate 100000 seq 107711
group 1 in-ifindex 28 out-ifindex 27 origsize 128 sample-rate 100000 seq 107712
group 1 in-ifindex 28 out-ifindex 27 origsize 128 sample-rate 100000 seq 107713
group 1 in-ifindex 28 out-ifindex 27 origsize 128 sample-rate 100000 seq 107714
group 1 in-ifindex 28 out-ifindex 27 origsize 128 sample-rate 100000 seq 107715
group 1 in-ifindex 28 out-ifindex 27 origsize 128 sample-rate 100000 seq 107716
The debugging continues...