It should all be possible using if statements

Apart from one point
I'm a bit concerned about several factions controlling one army. Think it may not be a problem if you use the control console command, but it may be a bit messy.

As ER said, if necessary make several versions of the same campaign.

Sorry about the brevity of this post, if you need more info I'll give it