Did you mount the drive with the "discard" option for automatic trim?
Otherwise that might have been the reason. The liked page also states that if you do not get all zeroes, it does not necessarily mean trim is broken on some drives. Only the reverse is reliable: all zeroes = trim is definitely working.
Does it work if you run
/sbin/fstrim --all
after removing the temp file to force a trim run?
I also found a couple more things:
- the data corruption issue supposedly only affected certain software-raid configurations (see Samsung Finds, Fixes Bug In Linux Trim Code - Slashdot) and also only queued TRIM, not synchronous TRIM.
- I checked the Xenial kernel sources and found both the patch to fix the root cause (from block: Do a full clone when splitting discard bios - kernel/git/torvalds/linux.git - Linux kernel source tree) in there, as well as the blacklisting for queued TRIM on the Samsung 8xx drives.
 Maybe they forgot to remove it from the blacklist or they still aren't 100% sure if the fix works in all cases...