Brozzer, forget about honest chats, they choose what they want and complain about the rest with DHs... Dear! what a nightmare!!!, you have all the right to be annoyed, however...may I suggest a more maquiavelic approach to the problem. If my MIL had three sons I would swear you two were married to my SILs in desguise. So this is what I have been doing.
-Be nice always to her, and if you want to say something she may not like say it calmly and smiling, that way when she screams at you... she is the bitch.
-If you are anticipating she is coming to visit, organise a day out for the family, a visit to friends or just some special time for whatever reason(teach DS how to use a postbox, etc.) so when she rings you always have plans or are out
-Disconect the phone before going to sleep and connect it first thing in the morning, that way you avoid the early hours calls (MIL used to call every day at seven)
-Give her nice surprises. I love to surprise MIL with unexpected visits on special dates. We don't say we are on the city until the D day arrives, then we all appear and she cries of joy of seeing us (excuse me, seeing her DS and DGS). The nice thing about it is that with these surprises you manage to spend half of the holidays with friends rather than staying at her house. I also manage to "find" very cheap flights for suspiciously short stays. As I organise the trip, DH don't suspect my evil intentions, but if I left him to do it we would be spending the full summer at MILs.
-
Visit her rather than invite her, that way you can decide when you have had enough and leave.
-
Forget to remember DH about special days (like her birthday), she will blame you for that of course, but your DH would think she is crazy, and will eventually realise that it is not you causing the problem but her.
Hope it helps, MIL is a stuborn draggon, however the tips above have helped a lot our relationship (DH and Me, forget about the MIL)