I actually haven't tried doing any of this, but I imagine you could place a curse on an enemy city and have it affect the entire enemy faction. You can also make spells that affect your entire faction (ex: +10% gildar while running).
If you place a curse on an enemy city it can be dispelled, just as you can dispel them if they are placed on your cities. There doesn't seem to be any notification system for this in place. Effectively, there's no way to know if the enemy has cast a spell unless you observe its effects (look at cities for that +10% gildar for example).
When events trigger they only trigger for the one player that triggered it, so that won't help you here. The exception is when it spawns a bunch of monsters which obviously starts attacking everyone.
Defensive randomness is not possible, except at the start of combat (in which case it would be set to 1 number for the duration of the battle). Edit: You could also have a number that gets rerolled every time the unit is struck in combat, using MeleeDefenseAppliesSpell.
You can however make offensive randomness using MaxValue and MinValue calculations in Spelldef (see CoreSpells.xml).
There are some deprecated values in CorePlayerAbilities.xml. If the value is used in FE it works. If it isn't, you'll have to test it to see if it works.