The " Leather" bug persisted after my attempted fix, but I have finally determined what is causing the problem.
It's the name of my modded creature. Not the name token specifically, but the name in the [CREATURE:name] token. After deleting all tokens from the definition (which compiles fine, by the way), the " Leather" would still appear on the embark list after restarting the game and genning a new world.
When I regenned after deleting the remaining [CREATURE:GIANT_CRAB_MAN] token, the " Leather" persistently failed to appear. Adding the token back and regenning brought it back. So I tried changing the token to [CREATURE:ABC]. No bugged items. Tried [CREATURE:GIANT_CRAB_MAN] again, bug was back. Finally, changed it to [CREATURE:GIANT_CRAB_MON] and the bug disappeared once again.
And that was when it hit me. I'd initially created new files for my modded stuff, but later merged them into the originals. I hadn't changed the creature name despite this. I already knew Dwarf Fortress did a 'compile' of the raws, output to the data/objects folder. I hadn't realised that, while it updates these files between restarts, it does not delete ones that disappear. So it was my phantom files which were causing the problem. I simply deleted all the files in the data/objects folder and the problem went away.
tl;dr: " leather" is caused by duplicate creature entries. Check your raw files and, if the problem isn't there, clear out the data/objects folder and regen.