i read that whole thing and at the point where she lives in a building with a dude she used to date and talks to him and buys weed from him (hell smokes weed) he should have bailed. shyt like this isn't a dilemma.
this guy has low self-esteem that's the only way a guy would ever put up with some crap like that.
my policy is if you ever catch a woman cheating on you here's what you do and the only thing you do: next time you speak to her tell her its over and you don't wanna talk about it. if you really feel the need to talk about it tell her "you know what you did and I forgive you for it but i'm not dealing with the kinda person that does shyt like that." then tell her you don't want an apology and you don't wanna talk about it and stop speaking to her.
you don't explain how you found out, talk about what she did, argue with her about it, or any of that bs. you just end it because its already over anyway. its just a one sided relationship at that point.
if a woman ever cheats on a man she's rationalized a reason for doing it and feels justified in her actions and no amount of talking it out will change that. she's not sorry she did it she's sorry she got caught. also women don't typically cheat on men they respect.
there's no real way to fix it. if you keep dealing with her the relationship will inevitably fail you're just postponing the failure of it slightly.