I like the image of treating “enemies” with love as heaping burning coals on their heads. My attitude is that you come, you treat them kindly and graciously, and you refuse to let your anger at being mistreated lead you to strike back. I have had amazing results with this. When they realize that they aren’t going to get a rise out of you, but just a chuckle and a refusal to bite, they often quit. There is no feeling of having power over you, so it stops being attractive.
If it gets abusive, though, you say, “You know, this isn’t working for anyone. We’ve let you know that that kind of treatment isn’t acceptable, and you still feel a need to keep it up. I think we need to go, before we ruin the day with some real ugliness. Maybe we can make it work on another day. Kids, get your coats. 'Bye Mom, 'Bye Dad, have a Merry Christmas. We’ll talk to you later, I’m sure, when everyone has had a chance to think a little.” If your parents protest that they’ll be stuck with a bunch of food, reply, “I’ll be happy to pay for the groceries, if you want, but we really need to go.” And then leave. (Obviously, you should alert the kids that this might happen: we’re going to go and be as gracious as we can, but if we need to leave, we need to leave right away and no guff. If you miss out on presents, we’ll have to work that out later.)
Repeat every holiday you’re invited to their home, as necessary. (Be sure you have some festive food in the refrigerator at home, because you’re likely to need it.)
Do NOT have a holiday dinner in your own home until you feel that they will behave themselves. It is far easier to remove yourself from a bad situation than to kick a bad situation out from under your own roof.
But I don’t know your in-laws, and I don’t know you. You need to be honest about what your own inner resources are. Don’t feel guilty for doing your best, instead of what anybody else tells you your best should be.