use existing buildings and just overwrite their images. I'm not talking about adding unit types, just modifying existing ones.
I can change any building i like, the savant overlay just shows "enemy building" without its real name/function anywayz. So if i take a lightpost for example i can change it into a into a perimeter watchtower or whatever other graphic i want to use. To the player it would seem like there is a new building type -one that he'd never seen before- but for the AI: i just issue a lightpost building command. It's the changes in the techtree that make the difference after that.
It's that simple!
For doing that, the tech i mean, you could just rename the tech to unlock the particular biuldings and vehichles. I think that would work but i have limited coding knowledge, seeing as I am still on the second C++ tutorial. But i think it would work, at least in game.