The concept with units (unique or not), is that there are unitclasses and units. A civ then has a conversion from unitclass to unit, which is unique to that player, though two civs can have identical "unique" conversions. This mean that a civ is stuck with max one unit for each unitclass and changing that is not a 5 minute job. I think it's all in the DLL, which mean it's doable, but presumably not worth the time.
Example the unitclass_worker points to unit_worker by default. However one civ makes it point to unit_fast_worker, in which case it overwrites the default value and the civ loses access to unit_worker. You can't make a civ where this one value for unitID is both unit_worker and unit_fast_worker at the same time.
I think what you need is more unit classes. You can make unitclasses, which defaults to unit -1 (NO_UNIT), in which case it will be off by default. Civs can then be set to use a different one, meaning you can get unique units without removing standard units. This allows enabling extra units for specific civs, which I think is what you want. There might be issues, like pedia text saying "replaces (unit)". Maybe you need an unbuildable placeholder to use as default instead of NO_UNIT to avoid issues with code like this.