@bravelittlepenguin
The issue is that they are very passive aggressive and are never honest about how they feel or what they want to do which is totally exhausting. Eg "would you like to come for dinner" "oh no no we don't want to impose you have your dinner on your own" "well we've cooked for you already and have plenty in" "no no you have your time on your own". Sub text is they don't want to have dinner with us but for some reason won't say it.
If I was you, OP, I would start to move to seeing them more like every 6 weeks, rather than every 4.
That said, I don't think them coming to see you closer to Christmas is unreasonable at all. If you don't want to see them twice in December, then I suggest you cancel the earlier date. However, it sounds like they are being perfectly reasonable when they are arranging to visit - finding dates that suit you as well as them, not assuming they can stay, making the travel efforts themselves, not even expecting you to feed them. You, however, seem cross that they want to visit, cross that they won't stay with you, cross that they will stay with you, cross that you have to do all the hosting, cross that they don't expect you to host them for dinner, etc, etc. I wonder what on earth they could possibly do that wouldn't make you feel annoyed!
Also, I think it's worth saying that the only passive-aggressive person in the above scenario is the person who asked someone if they'd like to come to dinner and when they politely declined said "well we've cooked for you already". That is true passive aggressive behaviour - giving someone what appears on the face of it to be a free choice (would you like to stay for dinner?) and then trying them feel bad when they don't make the unspoken but pre-determined 'correct' choice. If that was you, and it sounds like it was, then I'm afraid you are the PA person in this relationship.
You've made it quite clear that you don't really like your in-laws, and I'm sure that they are unreasonable in some of their behaviour, but it really does sound like it's six of one and half a dozen of the other.