Sigh. BTDT, with parents, under many other situations.
You know what? If that is a personal LIMIT for you? Tell them so. Maybe something like....
"I love these two people. I love you. But I will not sit here and listen to anyone, not even you, trash my Beloveds. It does not flatter you and my esteem of you goes down each time you do it.
I already know you wish I had a more conventional relationship model. You have expressed it to me. I have not forgotten. No need to trash my people endlessly. So cut it out. That is a LIMIT. Or I'm going home.
I do not have to listen to this continuing rude because YOU are uncomfortable or disapproving and do not like how I run my life. It is my life. You do not have to like it. You do not have to understand it. You have to accept that my life is MINE. Yours is yours.
I come to see and enjoy you, not hear a lecture. And I do not enjoy you when you behave this way toward me and my people. It lacks respect. It is rude.
You may call me when you decide to apologize for your rudeness. Until you do we are not in right relationship. Good day. "
And go home.
That's about it. Plain and simple.
Not easy to feel, or execute. I know that.
But we teach others how we want to be treated, and if this bothers you and don't say so?
You are teaching them that it is ok for them to be rude to you.
So they have no reason or motivation for stopping this behavior at you.
Sigh. Hang in there. *hugs*