This sounds very like how my cocker spaniel used to be. I still have him at age 9 and he is much better behaved in general, but I have still had 2 biting incidents in the last 5 years (me, he is managed in a way that he has not much opportunity to bite others since when he was an adolescent.)
Like you I have friends who would be absolutely bewildered if I had him PTS, as he is also the most affectionate dog I have ever known, just wants to be near me, cuddling into me. I live alone and it has been my decision to manage him, but I can ensure he is never around children and you can't do that.
If I was you I would have him put to sleep but I would also be absolutely devastated at having to do so.
The approach I took to improve his behaviour was one of establishing authority over him through continuous reward based training. We had got to a position where he felt he was in control and entitled to use his teeth to enforce his sense of control...control over his body(grooming, injury handling) , his spaces (crate, car, bed) and his things (at one point this was all the usual stuff such as treats and toys but could also be anything he might wake up near...plants, bags, remote controls, phones)
I had to work on changing his mindset on this respect...I couldn't do that safely when he was highly aroused, but I could do it by using lots of training and commands at more relaxed times. The success of the commands also meant I didn't have to handle him so much as he was controlled by my voice .This helped change his attitude to me and so he became less likely to resort to aggression in other circumstances as he felt a sense that I was in control, rather than him.
Previously he was very sensitive to my fear of him as well (who wouldn't be afraid of a dog that bites) and this was also an escalating factor in his aggression, and probably is in your case as well.
But it's not been perfect and I constantly have to anticipate and manage potential risk. I don't have kids, I think I would have to make a different decision otherwise as you can't pay around with the safety of others.