Hum... that could work.
- Each Balseraph mage (except world units) starts with a puppet promotion (meaning they carry it around).
- When they cast their puppet spell, it creates a puppet and loses the puppet promotion, meaning that he has no other puppet available.
- When a puppet dies, it leaves a "dislocated puppet" item, which a Balseraph mage can pick up to gain the puppet promotion again.
- There are 3 types of puppets (and dislocated ones), one for each Channeling level, and a higher tier caster won't pick up an inferior puppet. "Crude puppet", "Puppet" and "Elaborate puppet", for example, with

equal to their channeling level.
- As any item, dislocated puppets last as long as they're not purposefully deleted. (Maybe allow ennemies to delete them by pillaging the tile?)
Meaning that if your casters die without their puppet, those might live on and another caster of the appropriate level can pick them up and make them live again, but you won't get too many (especially the higher tier ones). That might actually make some puppets precious units
I'd still like the puppets to have higher cating failure rates and lower spell damage.
It should be indicated in the hints that you should be very careful to have the puppet on you when upgrading to mage or archmage, because otherwise your old puppet will become worthless to you. Or do we allow Tier 1 puppets to live on and give the new puppet to the caster on upgrades?
The higher tier casters could be able to pick up one puppet of each Tier, but lower tier puppets will only have the mage's spells of the appropriate Tier, but that may be too many puppets.