About Heather. It's her own fault. She knew Tommy was a jerk, that he was constantly fucking other women, and she let him get away with it. In fact, she even enjoyed some of his behavior, as evidenced by Tommy's joke about 1st and 2nd base on their first date. However, when it started to hurt her, instead of confronting him about it, she chose to hurt him as much as possible by sleeping with his brother.
Tommy's a jerk, but if you choose a guy like that, you need to understand what it means, and not complain later that you couldn't change him.