Did I do the right thing?

So for the past month & a half, my fiancée (we’ll call him David) & I have been having problems with his mother. My fiancée grew up in a *messed up* household, but I won’t go into detail about that. Anyway, 6 years ago since his mother met me, she’s felt some type of way about me. (We’ll call her Karen.) We’re not sure what it is or why it is, but it has really taken a toll on our relationship, which we feel is what she’s trying to do. We believe that she’s trying to split us up, seeing as when we were minors she made us break up once. Now, we’re 20 & 19, have been living on our own for almost 2 years, with a 2 month old son. Before I got pregnant, Karen would make it a point to tell or text David nasty things about me, including calling me names. I have always been so nice to her, to the point where I was torturing my happiness to try to get her to like me. I have never once called her any names to anyone but myself. However, when I was pregnant with our son, she was somewhat nice to me. I thought she was warming up to me (after SIX years). After I gave birth, it was back to the same old-same old. Calling me names, even going as far as to tell David that I was just a piece of a** & I wasn’t worth it. She even told him to grow a pair of balls, be a man & put his foot down toward me because she didn’t like *our* parenting. Yes, I said “our,” not just me. She was blaming me for everything & said I was jealous of her & David’s relationship, which I’m not because that’s ridiculous. We had to ask her numerous times not to post our son on facebook because we feel he should make the decision to be on the internet for himself & obviously he’s not old enough for that yet. We also had to ask her to not come over smelling like smoke because she smokes whenever she gets the chance, even in her house & car. We made the decision to not take our son to her house because of that. We also recently decided that she would not be allowed to come over to our house because when we expressed our concerns, she blew up & tried to paint me as the bad guy to David’s family, instead of respecting our wishes. We decided we didn’t need that kind of drama in our lives. I told her that I didn’t want her in my life or my son’s. Now, she won’t stop texting David, asking him to let her back in his & our son’s life. I would like to point out that I always told her that David could go see her anytime he wants, I just wanted nothing to do with her & I don’t think my son should grow up around her. This is obviously weighing really heavy on David & I feel like this is the only solution because I’ve tried to talk it out with her, but we both end up yelling at each other. Karen feels that she’s done nothing wrong, so she hasn’t apologized for her name calling & actions toward me, but she says she wants to take the blame for everything & just forget about it. I just don’t believe her & I don’t want her to just forget about this. There are obviously deep-seated issues going on with her & she needs help, but won’t take any steps to help herself. Anyway, my question is, did I do the right thing by cutting her out of me & my son’s lives? How do I help my fiancée cope with this?