If I am to rename a head (player or mob) using an anvil, it is successfully renamed. However, if I put the head down as a block then mine it and pick it back up, it's name returns to it's default name. For example, if I kill a player named Superman and rename his head to Doom, then place the head down as an in-game block, mine it, and pick it back up again, the name will no longer be Doom, but instead the default Superman's Head. It also works with normal heads with no original owner.
I discovered this on a pvp/survival multiplayer server, and replicated on my own survival server and singleplayer world.
Related issues
Comments

Duplicate of MC-209, please use the search function to see if your bug has already been submitted. Currently over 57% of tickets are being closed as duplicate.