This does have some relation to #3651 but because it presents some new unusual behaviour and has more information provided, I've put this in a separate issue. Should it need to be moved over to that issue, that is fine.
___What you expected to see___
That textures for custom heads stay, and that there are no duplications for entries in data files.
___What you actually saw___
When a player head has both a Name and UUID in the SkullOwner object, they will be provided with a texture entry. However, this texture entry seems to duplicate itself over and over despite it already existing. Eventually, this leads to the NBT tag getting too large, meaning it can no longer be read, and the user's client crashes each time they attempt to connect.
However, as behaviour inspected in the issue mentioned above, player heads without a UUID or a name do not produce the same behaviour and instead has its texture property removed, resulting in the texture disappearing from the head.
Here's a screenshot of the data file with the custom head first (hpxhead - texture removed) and the player head second (Thatsmusic99 - texture duplicated): https://gyazo.com/3126017b84aa3118759b8100dba1c73e
I did compare this to behaviour to Spigot builds (git-Spigot-758abbe-ca19c2f - currently not the latest but if required, I'll update and test it), but this did not occur - https://gyazo.com/0d4eca881975b59ba788ef0e121c3917
___This may include a build schematic, a video, or detailed instructions to help reconstruct the issue___
/minecraft:give Thatsmusic99 minecraft:player_head{"SkullOwner":{"Id":"7091cdbc-ebdc-4eac-a6b2-25dd8acd3a0e", "Name":"Thatsmusic99"}}___A list of your plugins___
___This can be found by running /version on your server. latest is not a proper version number; we require the output of /version so we can properly track down the issue.___
___Anything else you think may help us resolve the problem___
Fixed in latest 1.15.2 and 1.16.1
A couple of questions regarding this fix: does it retro-actively fix duplicated skull data on chunk load? If not, would doing the /data command allow us to see if we were impacted by this bug? For example, my server uses the data pack by Vanilla Tweaks team to drop skulls for mobs and players.
it doesn't clean up yet, but going to try to add that tonight.
unless you trigger another setItemMeta on it, then that should clean it up, but for any player blocked from logging in, that can be a limiting factor.
Most helpful comment
Fixed in latest 1.15.2 and 1.16.1