My brother-in-law was in a relationship with a manipulative, OCD, compulsive liar in his late teens. Friends and family all told him she was a mess. She got pregnant (we suspect on purpose, but no way to know for sure) so he stayed with her. They eventually got married and had three kids total. It's mostly been a complete mess and divorce has been thrown around a couple times by him and she managed to convince him to stay. She finally filed for divorce last year and it seems like it'll stick this time since she initiated, but the whole thing reeks with her lies and manipulation (though BIL is not completely innocent). Nearly 20 years of his life wasted on this woman. He has three kids who are great, but are also messed up by her. It's only going to get uglier as the divorce proceeds.
All this to say... it sounds very much like your son needs to get out of this relationship ASAP. I think asking questions of your son sometime when she's not around might help. He needs to make the decision to end it, but you can help steer him. "Are you happy with her?" "Is this the kind of life you want?" "Can you see yourself starting a family with her?" Etc. Setting limits on how many nights a week she spends at your home and that she can't be there if he's not are perfectly reasonable compromises that don't involve straight kicking her out.