I was recently testing out the new datapack features, and got curious - if each chicken variant lays a unique egg type, and each egg type spawns only one chicken type, how would that work when implementing a custom variant? So I tried adding a duck variant to my personal pack for testing purposes, and it turns out... they don't. There isn't any documented way to specify an item to be laid by the given variant (and, to my knowledge, there isn't any way to reliably make an item that, when thrown, spawns a custom chicken variant).
To test this definitively, I set up 4 pens of chickens (cold, temperate, warm, and my custom variant), put a bunch of chickens in each with a repeating command block (appx an equal amount), and put hoppers underneath leading into chests. I did a tick sprint for 1d, and at the end, each of the vanilla variants had ~1.5 rows of their respective eggs in each of their chests. However, the custom variant's chest had no eggs. I'm not sure if they tried to lay eggs but couldn't because the item isn't defined, or if the issue is entirely different.
The vanilla loot table
gameplay/chicken_lay
only defines that cold, warm, and temperate variants can lay eggs. Have you tried modifying this loot table to add custom variant?