Am I right to say that battles are fought seperately from the campaign? So while playing the campaign the engine has no idea whatsoever how a battle ended?

I think your idea was to get of units by expecting to have the player disband units who were killed during combat, right? Since you cannot disband characters you have the problem of unable to get rid of them, right?

Perhaps you could let the player edit the show_me script, which if you seperate it is only 3 lines and thus easily understandable. It would be something like:

Code:
script
	console_command kill_character KILLED_CHARACTER
end_script
Which the player edits into for example:

Code:
script
	console_command kill_character Julius Ceaser
end_script
If I understand the show_script concept then the player then loads his game disbands his killed units and presses the Show Me button in the Advisor interface part (you know the woman with the black hair) and voila, the character is killed.

So the process would be something like this:
1. [campaign] Player comes into contact with army
2. [campaign] player writes down character name and army composition
3. [mp battle] player plays mp battle with the right army and loses his entire army
4. [windows] player edits script so that the right name is used
5. [campaign] player disbands units and presses Show Me button.

I'm no expert on this so I'm not sure how to code, but it might work.