Battle scripting is quickly tedious. A lot of things are totally or half broken, and the performance and the stability are very problematic, even without multiple armies. For example some events can be used with only one condition (direct or independent), otherwise they are not executed. Some others accept only one secondary condition, and a "if" nested in another one (or associated with more than one condition) can sometimes simply break the full monitor.
Futhermore, the performances of a basic thing like monitor_conditions also depend on the size of the script: in a background script i was able to add several hundred of lines inside this monitor without problem. If i do the same thing inside the eb2 campaign_script, even with ony ten lines, then won't be executed (unless i remove the rest of the script...).
In fact, i'm sure that if the script reach a critical size monitor_conditions will no more be operational (keep calm! it works great currently for eb2, and with good room for manoeuvre a priori
), and it's already the case for I_UnitStatus iirc.
In the case of multiple armies, there is also the problem that the "goal to achieve" system of the ai is very rudimentary and so hardly supports the external constraints.