Re: What to do?
1. Long distance relationships give a false positive because they do not show the person at their worst, but usually at their best. I think you are disappointed at this guy's best.
2. Relationships are to learn. Sounds like you can only offer HIM the opportunity to learn, and you are so far past him, that you can learn as much by yourself as with him.
3. You know in your heart and soul that this guy, as he is, is not for the long term. Don't think that this is the only guy you can get, or that since he likes you and you like him, that you are compatible. He might be good for the long term if he completely changed. Are you willing to bet on that? The best predictor of future behavior is past behavior. You probably are very sensitive and see his potential, and think you can help him. Not exactly an equal relationship. More like mother/son.
You already know he's not for you. When you finish grad school, he will be even less for you. He was for a season, for a reason. Like Thomas Edison, you now know one more thing that does not work for you.
Shut the door so another can open. Use the time between to keep improving yourself. You sound like someone who has their head on straight and you need to trust yourself now.