One thing I'm going to do, soon, is write the "Ethics" chapter for my book on theology. As far as forgiveness goes, here's my take on the subject.
If you honestly believe the core principle of NLP that people are always doing the best they can given their current maps of the universe, then you can easily forgive yourself. Forgiving others is a bit harder, and you're the best judge of what is appropriate in the situation. Just remember, there is no such thing as a "failed" relationship if you take the approach of Paul Scheele. No failure, only feedback. I view all my relationships as successful in that they taught me things I've needed to know for some time. I only fail if I don't learn anything.
Henry Ford said, "History is bunk," and he got a lot of flack for it, especially as most people know the context of that from the book "Brave New World." What Ford meant, when he revolutionized the way industry operated and created a higher standard of living for his workers and a much higher GNP for the United States, was that just because something has never been done before doesn't mean it can't be done. This is a very potent idea, and is behind much of NLP. The simple mental act of adding "until now" or "so far" or "yet" to any self-limiting statement can create miracles.
You have the power to change your whole life. The past can provide good examples of how to achieve future success, but if you allow it to limit you, you are being enslaved by a shadow. The past no longer exists.