I do understand what it's like, DS would't cope with changes in his routine, and it would mean 2-3 nights of hell for all of us at that age.
Anyway, my suggestion is to invite PIL and GPIL to you for lunch a couple of times, if they decline, fine, but then don't feel bad if you decline MIL's "event dinners". If it doesn't suit your family, you don't have to go. If she wants to see DD, she'll come to you when you invite her or she'll make it more family friendly times. It's her choice to put meals on at those times, it's your choice if you go or not - and her making comments will mean you won't enjoy it as you'll be waiting for the digs at your parenting at the end of the dinner - hardly relaxing knowing you're waiting for the comments and having to plan how you are going to answer the inevitable insult.
I spent a couple of years of accepting MIL's determination that a sunday lunch should be served at 3pm - which was far too late to be DS's lunch so I'd have to feed him before we went to stop a hungry melt down, meaning he was too full to eat anything, and then it was too early to count as his tea/dinner, it's a crap time for a meal for a toddler, dealing with trying to keep a toddler who isn't hungry still at the table for this 3 course fabulous meal and having a reputation of having a 'poor eater' with no table manners for a child.
Then my 'hard work' SIL had a baby, once DN was weaned, she just declined invites for a 3pm lunch. Suddenly, MIL was able to do a Sunday lunch on the table at 12:30. And was shocked that my DS could eat so much and sit so nicely and behave himself.
Basically, if you 'fit round them' people like your MIL will always stick to their routine. When it comes down to it, when they meet someone like my SIL who won't fit round them and will just not go, they have to make a choice - a meal at a time that suits their guests or no guests. I really wish I'd said something to MIL earlier or also refused invites for Sunday lunch.
Personally I think it's a sign of a bad host if they put their needs above that of their guests, from what you've said the only one of the people at the dinner who wants to have it at this time is your MIL, as the host it's her choice, but as a guest it's your choice if you go. Just don't bother if she's going to be making shitty comments. See what happens.