You know, based on God’s promises, that He has forgiven you. But if you’re still agonizing about what you did (or didn’t do) and feeling great guilt, perhaps you have yet to forgive yourself. When you acknowledged your sin you already made the hardest decision–facing yourself and making changes. Sometime when you pray, thank God for the guilt and shame that moved you to repent and leave a destructive path.
Your past will not define your life and you should not look at yourself through the lens of your past. There are many people who have been down the same road you traveled who are fine teachers, loving spouses and parents, and good examples for others.
Sometimes we hold onto guilt and have problems forgiving ourselves because we feel that we are letting ourselves off too easily. Holding guilt allows us to punish ourselves and, when reaching some spiritual summit, reproach ourselves saying, “You’re not so good. I remember when you…” It is ok to let go of your guilt. Acknowledge that your inward pain has been your punishment and prison for past sins and give yourself a pardon.
Forgiveness is the greatest thing you can give others and yourself. Grieve your sins, the embarrassment you feel/felt, the sorrow for letting others and yourself down, the actions you regret–yes grieve them–then let them go. You have punished yourself well enough–I think anyone could say that you have not let yourself off easily–you have the right to free yourself and enjoy true peace and happiness. You will never forget what you have done, but when you forgive yourself, it finds a place in your past that can only give you a small tinge of pain when it is brought to mind, but it will not bully and berate you anymore.