How about this:
Highests rule overrides, both players in the same circumstance invalidates.
Balista and steam tank do not count as siege engines.
If your opponent has a seige engine and you do not you must attack.
If you destroy your own seige engine your opponent must attack.
If your opponent has a skeleton catapult you must attack (it cant hit anything anyway)
The player with the fewest surviviing crew on they're seige engine gets to defend. (have fun reducing the men on your own unit