Ban her.
A great friend of mine was in a similar situation. It is, in effect, an abusive relationship but because its Christmas we expect people to be tolerant. We wouldn't ask someone to take a few slaps from her husband for the sake of a united family at Christmas and even though I am sure she's not physically abusing you, but abuse it is.
My friend let this drag on for years. She was miserable, her husband was miserable, FIL miserable, everyone had a **** christmas. Finally got sorted because she was vomiting with stress before a visit a few years ago and her husband made some comment like it will soon be over and they both realised how stupid they were being.
So they sat MIL down and explained that it wasn't working but they would make a super effort but MIL needed to as well. MIL huffed and puffed and agreed. Then they told MIL that she had 3 "strikes" and after 3 incidents she would be asked to leave. Everyone, including FIL, agreed.
She lasted two days and then made some comments about daughters weight in front of everyone (she really can't help herself!) and then husband got up and went and packed their bags.
She's allowed to visit on Xmas day to see grandchildren, wife goes out to visit a friend and has nothing else to do with her.
Seriously, some people are so screwed up they can never be kind so don't let them ruin yuor holiday.
NCL