This method was a success.
I've overloaded the Class constructor to contain and extra parameter which is a list of Class IDs. Using code from the PlaceUnit() method in DebugMenu.cs (the Sandbox) units are now able to place other units in battle using their Class IDs. (There are a few temporary visual bugs but nothing major.)
Currently I just have Avalon placing units from her Expel skill's select menu, which I've overwritten the normal function of, meaning that she can only place units when carrying another unit. While this is not intended, it is a cool idea for a character that clones other characters.
The next step is to create a custom skill rather than overwriting expel.