I have exactly the same problem, its always just when I've just spent ages defeating the enemy and it CTDs before I can save it!
I have found a temporary solution to this problem though. I'm guessing you have skip AI movements turned on. Before every siege attack or any battle involving a garrisoned force where winning will mean you taking the settlement press Esc, Game Options, change to follow AI movement. After the battle, assuming you won, it will follow the rest of the enemies move then obviously the Occupy, Enslave or Exterminate option. The CTD should not occur which ever option you choose as long as it followed the AI's movement. Just to be safe this method also gives you time to save before the option appears anyway but since I have been doing that it hasn't done it. As you can probably tell I don't have a clue what I'm talking about but a combination of patience and trail and error came to that conclusion. I'm guessing something happens that the game doesn't like when it skips the AI movement which causes the CTD. This method also hinges on the enemy attacking you in their turn, as far as I know its never CTD after a battle you fight during your own turn. Just remember to change to follow AI movement every time before a siege, you can switch back straight afterwards.