I think part of the problem is that in many cases our MILs aren't necessarily the sort of person we'd choose to spend large amounts of time with. And when you add long stays, things are bound to get tense.
My MIL means well, but she is exceedingly stuck in her ways, and appears to have forgotten that DH isn't still the 17 year old who moved out of home. She also lives on the other side of the world, so when she comes to visit, it's for a long time.
She had rearranged my kitchen when I was at work. Rearranged my really nice put away until I can fit into it again underwear box. She sent my dairy allergic daughter chocolate "because I thought she'd like the box", has absolutely no filter (once told a grieving widow at the funeral that her husband wasn't in a better place because he hadn't welcomed god into his life) and is not capable of a positive conversation.
I spend her visits biting my tongue, telling the DC "no, I'm not sure why Nanna said/did that, maybe she meant...", and trying to find ways to keep the peace. But she does mostly mean well, she is my DH's mum (although she drives him equally crazy), and my DC's grandmother. So I do my best to get through it, vent on her or to my DM and try to remember the good bits.
I wish I could have a better relationship with her, but if she wasn't my MIL I still wouldn't get on with her.