Whenever we blame ourselves for past mistakes, we make the same logical mistake: we judge a person who has just learned to swim by the standards of an experienced swimmer.
So you made the best possible choice at that coordinate point. You had other resources, a different pain, a different understanding of life and a different level of maturity. To demand of yourself then the wisdom of the day is the same as being angry with a child because he does not know how to solve higher mathematics.
The past cannot be fixed. The only legitimate attitude towards your past mistakes is to recognize them not as a "failure", but as a high price for the understanding you have now. You didn't lose, you grew. Take this burden off yourself: you have already paid for this experience in time and effort. It's time to stop paying interest on closed accounts.