Like Bigger said, one of the most difficult things for human beings to do is to take responsibility for the bad decisions that we have made. People twist themselves into knots in order to avoid facing the unpleasantness in general, and when this is harm we ourselves have caused, our very natures seem to rebel against what we know to be the truth.
This isn't something defective within us, this is a hard-coded survival instinct. But it does run cross-purposes with the higher levels of human functioning that you already know is at work within you, since you have posted here. You can already feel the call of responsibility to address this situation, and you can feel the weight of emotional gravity intrinsic to this responsibility, all of which is an excellent first step. The difficulty will be in answering "What should I do?"
1) Accept that the past is not something that you can change.
2) Accept that feeling bad about what you have done doesn't atone for your poor decisions, but rather gives you a source of motivation to change yourself.
3) Accept the changes and improvements you make are completely within yourself, and maybe you can make amends to help the ones you have hurt, and maybe you just can't. (Facing that last truth will destroy you if you won't get to a point where you can truly accept "I have built the competence and maturity set things right, and have to accept that I might not have the opportunity to do so.")
3) Acquire the internal and external skills which will empower you to make high-quality, informed, and competent decisions for yourself and whoever else is in your life.
Others in this thread have recommended therapy for excellent reasons, and this will be very important. A lot of therapists seem to be a bit aimless, in my experience, so you might have better luck if you can find one who will help you work on a list of goals like the one above, in an orderly and consistent manner.
Good luck, and God bless,
-M