I just found a way to automatically win any seige, though I've only used it with wooden walls, there seems no reason why it wouldn't always work.
All you have to do is sally out the first turn they beseige you, so they don't get seige weapons. You deploy your entire army in your town square and have a cavalry unit near the gate on the opposite side of the castle from the enemy. The enemy will send their army at that one unit and are annihilated by towers. Once they are within a dangerous distance, retreat back into the castle. Your towers will make a mess of the enemy. Of course, you can sally out as many times as you want in the same turn. Or, alternatively, turn off the timer for more conveiniance, although I wouldn't recomend it. The AI doesn't always send everything at you, so its best to do several battles.
After losing most of my army in a failed breakout attempt, I used this tactic that I had developed torwards the end of that battle to defeat over 2000 enemy troops with my 60 men later that turn.
Silly computer.
Bookmarks