Why don't you make it use player data (using IExtendedProperties, or PlayerCapabilities), and then use a LayerRenderer to render it. The item layer renderer would be a starting point. Then make it render a chicken model instead of an item model.
I suppose you could also accomplish this by making a unique entity, keep it "invisible", where the entity itself doesn't render, then with a layer renderer, check that the entity is riding the player (simple way to keep it at the player's location all the time, and track when you have a chicken), and render in hand with the above method.
That's just me thinking about how to re-use existing approaches, to save you a ton of time getting the math.
I don't have the documentation and code out in front of me, so I'm not going to be of any help with the actual code, but I figure pointing you in the general direction, and you digging around ought to suffice. Good luck.