I put plural in title as I think I'm likely to come up with more prob's later!

For now - slightly simplified version but the below works so long as I don't include terminate monitor, as soon as I add terminate monitor it stops triggering, though I've managed to get a spawn army script elsewhere that accepts the terminate and only fires once.
monitor_event SettlementTurnEnd SettlementName Metatron
and I_CompareCounter Metatron = 1
and GarrisonSettlementRatio < 0.8
and SettlementBuildingExists > militia_barracks
if I_SettlementOwner Metatron = vandals
and I_FactionBesieged vandals
and I_FactionBesieging sarmatians
and I_CompareCounter severin = 1
set_counter Metatron 2
console_command create_unit Metatron "archala infantry" 1
console_command create_unit Metatron "archala infantry" 1
console_command create_unit Metatron "shovar" 1
console_command create_unit Metatron "assakii archers" 1
console_command add_population Metatron -400
end_if
terminate_monitor
end_monitor
Any idea why that won't take it? Alternatively can you actually get counters to work so that the set_counter = 2 actually stays set and doesn't allow the script which should be looking for it to equal 1 to fire?