OMG...I am chomping at the bit on this one....here you go!
First things first, and we all need to really remember this. It should be engraven in stone. If MamaSource had bold type I would write the following in bold type:
Noone, I repeat, noone, can change anyone els's behavior. Ever.
The only behavior we can change is our own.
That said, and understoon (truly), you have one very simple option. Take action that is in the best interest of your child's well-being--emotionally and psychologically. What this looks like to me:
Have a frank talk with your MIL (not a discussion), that calmly outlines your concerns and preferences. State that you have observed her doing these things several times, and that it concerns you. Say it in a way so that she knows that you have a right--as the children's mother--to create the best, supportive environment for your children, and to you, that does not include denigrating others, even in a joking manner. Tell her that it not what you want role-modeled to your children, that the world is cruel enough, and that our family should be the best and most supportive environment as we're growing up.
Deal Breaker Moment: Once you have said your peace, don't let her "explain" to you that it's not that bad, or that you're just "over-reacting." Don't fall for this. Stand your ground. Be firm and loving (the way you are with your own children), and simply say something like:
"MIL...this is so important to me, that I am sorry to say that if this kind of disparaging language continues, I will have no choice but to stop visiting you with the childrem or inviting you to our house. FIL will have to come and visit alone."
After you drop this bomb (which is how whe will interpret it), say nothing else. Again, from what you've described, she is going to get incredibly defensive and blame it all on you. Expect this, don't take it personally, and don't let it cause you to back down. Your DH may even try to "reason" with you at this point, in an effort to win his Mother's love and approval (deep subconcsious thing, see below for more).
If you are willing to do this, you will have done the most amazing thing on behalf of your children: role-modeled what is and is not acceptable in terms of our dealings with others.
Most of us, unfortunately, never had a stand taken for us in this way as we were growing up. We were always at the mercy of adult authority figures imparting their often dysfunctional ways of dealing with each other, and left fending for ourselves and trying to figure it all out. Seize the opportunity to share with your children what you stand for--and do it all in such a loving way that they can't help but be impressed as to how we appropriately set boundaries with others. I applaud your courage and opportunity to do so.
Now, a little senstive talk aobut your DH...
It sounds like your husband doesn't want to confront her because he is afraid of her (although he will not likely admit to his), i.e., afraid of losing her affection if he says anything. But truthfully, how much genuine affection is there from someone whose tongue wags so unpreditablly that you never truly know where you stand with them? Does he know where he stands with her? Can he say that his mother--who I am sure is loving on many levels--loves and supports him unconditionally the way he is, including his choices, his career, etc., etc.?
These are tough questions...consequently most people are afraid to look at them squarely and be truthful.
Now, having just re-read your post I hasten to add a comment about not wanting to offend your MIL, or "risk" avoiding visiting. I totally understand this, and agree that grandparents are a vital part of a child's life.
But that is not the decision that is before you, it is the consequence of the decision that is before you. The decision is: Do I take action on behalf of my children's well-being or not?
The outcome of this decision, i.e., the fallout from your MIL, will be HER CHOICE, not yours. She will decide whether to change her own behavior or not. And you have to be ok with that.
My question to you is: Do you want to RISK your own children's sense of well-being or self-esteem or emotional health simply because you're afraid of hurting your MIL's feelings?
With a degree in MFT, she will know, and will now have a great opportunity to practice, taking full responsibility for her own behavior. She will now have the choice to "come up higher" and be the example to her grand-chidlren that she should be. And you will have the peace that passeth all understanding knowing that you were the #1 advocate for your children in a world that is constantly trying to tear them down to the lowest common denominator.
And BTW, it is not your responsibility to "parent" her through this, i.e., help her understand, have long conversations about it, etc. She can and should do this for herself or find the support she needs through her own MFT community.
So I say, go for it. Seize the day, and do what your heart is telling you. Let your MIL find her way, just as you are finding your own.
p.s. One more thought....what will your children think about your if you say or do nothing about this...especially as they grow older? What do you want them to remember most about your character when they talk about you in their 20s ("My mom always stood up for the right thing, and always defended us in the midst of criticism. Even when it was hard, she didn't waver on her principles.") What a blessing that would be, eh?