I have decided to use the Expel skill (as seen on Avalon) as a base for designing a "Summon" skill due to the fact that it already has the functionality of pulling up a menu of selectable units to expel.
One issue I've found however is that I believe Expel is the most complicatedly programmed skill in the game.
Currently my objective is to replace Expel's function of spitting up a contained unit with placing a new unit from a list of units which should only be a few minor changes, but we'll see.
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.