You need to understand what you can control and what you can't.
I don’t want to stop them seeing her
fine, let DH take the kids to see her
but I’d like to not have anything to do with her (not even just a civil hello)
fine, just avoid her. Never go to see her. If she comes to your house, be out, or go and read a book in your bedroom.
I’d like her to stop bad mouthing me
This you can't control. She will never stop, so make peace with it. Tell DH you don't want to hear about it if he starts to report to you what she has said.
on special occasions like Easter she should understand we will be spending it as a family
She will never understand this, and will never accept it, She will never accept you as being DH's primary family. To her, she is his primary family.
You cannot make DH choose to spend time with you instead of her - that has to be his decision.
Basically, you cannot control or change anyone except yourself.
This may mean you stop yourself telling DH stuff as you know he will tell her. It will affect your marriage if you can't be completely open and honest with your DH, but that is the price he has to pay for what he is doing. You just have to accept this is who he is. He may change eventually, but you can't change him.
Unfortunately, you cannot have the kind of marriage you want to this man, because of who he is.
Let him go running to her whenever you have had a mild disagreement about the dishwasher. Let him tell her whatever. You don't need to know about what either of them say to each other, and most of all you have to stop caring what she knows.
That is your ultimate defence - stop caring about her, what she says, what she knows, and what she does.
The only other alternative is divorce. But divorce still won't stop DH taking the kids to see her when it is his time to have them. And it still won't stop him telling her stuff and her criticising you. All a divorce will achieve is helping you to keep even more distant from her.