Hi OP, I have a MIL like this and I used to deal with it my own way - limit visits, grey rock - at least I think that's the term - if she goes off on one of her endless critical rants. Like you, I did everything wrong. There is only one way to do things, and that's her way. The only person who seemed to escape her ire was my DH, her son.
Of course, like highlandcoo my parenting was terribly lacking in every imaginable way, and so was my cooking. But this low contact and grey rocking worked fine for me until the day she started on my kids. Then I let her have it with both barrels. My husband too. I mean she really got it, loud and clear in front of eight other people. She was stumped and to this day has no clue why we rounded on her. I think that's because I'd never stood up for myself, and nor had my husband stood up for me - my one and only gripe in what has been a very happy marriage - I mean apart from this one area he is the ideal husband for me. To be fair to him she often managed to criticise me when he was in another room, or distracted. But he was there for enough of the digs, and plus, he knew what she was like.
I am sure she will continue criticising until the day she dies. It's too bad. She also criticises us for not visiting often enough, causing a few amused glances between us. Her grandchildren are now grown and independent, and they also come to see her very rarely - a real shame because grandpa is a total darling.
Anyway, last time she said "I don't know why /one of our sons, the more sensitive one/ doesn't visit me" I just said "Oh that's easy, it's because you make him feel like shit". I only dared speak so frankly because I was in the car with the engine running about to head for home. Also my DH was not in earshot.
Anyway I wish you lots of courage. And I do urge you to let her know, sooner than I did, that her criticisms are not on. Point out that she's alienating her family. If you dare. I wish I had done it sooner, personally.