A PostBattle monitor could set an event counter and the trait trigger could test for that. But the trigger would need to be firing on the original character so something would need to be done to make that happen. If he's the governor then *maybe* it's possible: use script to reselect the settlement and show the character scroll of the governor, and have the trait trigger on CharacterPanelOpen (with the counter check). There are still a lot of ifs and buts to take into consideration there.
As for the battlemap: it could be a custom tile placed where nobody would be able to reach normally (to avoid fighting there by accident). When the tourney begins, spawn a general of that faction onto that tile, then spawn an enemy (rebel I'd say) adjacent and have him attack. Maybe that's what was already intended? If they're elephants then you could do the single soldier trick, a la Sauron. I would also use Unique Names for those guys so they're named something generic like "Contender" but that might cause problems for the bodyguard (thus single-soldier not possible ... maybe ... or at least more complicated to do).
Ambitious is the word. But probably doable.
Oh, I expect the resource will be outside somewhere? Forget governor then. It might be even easier. Script could cycle through all faction generals, firing off CharacterSelected each time, and the trait trigger could respond to that with conditions counter=1 and "OnResource tourney". If there are multiple of these resources then the battle should be prevented from happening in the first place if more than one is currently stood upon by player faction, so the trigger is sure to give it to the correct guy.