OP, your ex is saying he's changed, and yet in your words, 'says he can’t help it, he’s broken hearted and will never recover'. He either can control himself and make changes, or he can't, he can't have it both ways!
Personally I think it would be a massive mistake to get back together. You clearly weren't happy, and your DH says he can't help his behaviour, so nothing will have changed. Therefore if you get back together and then realise that you had escaped, but now, thanks to being pestered by your DS, you are back in the same situation and unhappy again, you will then find yourself resenting him, AND your ex. Meanwhile, your poor daughter will be disappointed in you for going back, when she could clearly see that you were unhappy before. Then just to top it off, the chances are, that if you get back together and then have to separate again, your DS will then decide to stay with his Dad anyway.
I'd been unhappy with my ex H for a long time, we got together young, and as we reached our 30's we'd developed in different ways, but there was no violence, no major arguments, I just wasn't happy, so decided to leave. I got involved with someone else, and moved in with him, but life was really difficult, not because of anything my new man did, but because my DD was unhappy, money was tight, and I was no longer leading the easy life that I'd had with my ex. At that point I gave serious thought to trying to get back together, but eventually decided that going back would be a mistake as I still wouldn't be happy, so I stuck with my new man, adjusted to having less money, and a different lifestyle, and we've now been together for 34 years, married for 30, and we're REALLY happy, and as some might say 'soul mates'.
I've told you this to try and make you see that once you've split up after being together for quite a long time, you can find yourself wishing that things could go back to how they were, because life was easier. Where in fact you just need to give yourself more time to adjust to life as a single parent.
Apologies for the long post.