can you smell it... it's... ONEITIS!!
Ditch her. I hate to be harsh but I want to tell you how I see it: ALL YOU'RE DOING is stroking her ego. She's PLAYING YOU because she knows she can always fall back to her bf. Meanwhile, you're the little lamb getting led down the tempting trail... then BOOM you see her mackin with her bf and u feel like crap (lamb gets eaten by bear).
NEXT HER. The ONLY - ONLY - ONLY way you can get her is she has to know that you're worth more than her bf.
Easy: her bf is a d*ck. you just hang tight and pretty soon she "realizes her mistaken ways" and dumps him for you. boom.
Reality: She's WITH her bf for a REASON. (he's probably a jock, attractive, popular, AFC, whatever.. but she's WITH him, at least). Now you're fighting against what he has to offer against what you have to offer. Now, unless this girl is damn smart and pretty special, she's still a HIGHSCHOOL girl and would rather be around a popular athelete than with a decent, life-loving, fun, caring, funny, down-to-earth guy (YOU).
Why compete? Instead, let HER do the fighting. You DETACH, back off, be INDIFFERENT. Flirt with other girls. Show her that you're enjoying life regardless of her, and whether she wants to be part of that excitement is up to her. When she's with you, you show her the time of her life. Then you GO AWAY. Now, SHE HAS TO DECIDE who she wants to spend her time with. The bf who's always there for her, or this care-free guy who she can't put a finger on. MAKE HER WORK FOR YOU!!! She'll wake up and realize that YOU DON'T CARE IF YOU GET HER, AND SHE CAN'T HAVE YOU!!! ...NOW SHE WANTS TO HAVE YOU!!
...and boom. you're in.
(hope that made sense tell me if it doesn't)