Deb, he seems to have loads of guilt and needs to talk to relieve himself of some of it. I don't think the sex problem is really your fault. He's having some emotional issues that are causing the problem. He seems to want to connect with you that way but the guilt is getting in the way. I think time and your forgivness and unconditional love are going to get you both through this. And a little spicing up in the bedroom (or wherever) is fun too!
Just keep listening and finding things to validate. Don't encourage him to talk or point out any "big" issues. This may put him on the defense. Just let him talk when he initiates it. Otherwise don't talk about it. Just keep being his friend. He sounds like my H, he was lonely cuz things weren't right in your M and he went looking for comfort. I bet your H never really loved her, she just comforted him for a while. Now he is totally uncomfortable with her but is having a hard time working through his guilt.
Time and patience are important here. And don't push, and don't try to fix. Just let him get through it on his own time and be there when he needs you. I think you are doing great!