The man you describe is a deeply, deeply damaged individual, and however much you may feel sorry for him you simply cannot love him better. When you took him back he assured you he'd changed, but events have proved he hasn't, he's just learned to be a little more subtle with it (and that's not because he cares about your feelings, it's because he's afraid of your dad
). You are trying to bring out the best in him by supporting him, when actually what is happening is, like an alcoholic, he is being enabled by your support to carry on being a dick. This not only isn't doing you or your son any favours, it's not even doing a favour to your boyfriend, paradoxically. It's a well worn trope about The Love Of A Good Woman providing redemption - we've all been brought up on those stories - but unfortunately it's mostly nonsense. The Love Of A Good Woman is in fact helping cover up the consequences of his dangerous actions, so reducing the incentive to change.
Those little thoughtful gestures that make a good relationship great are the icing on the cake. But when the cake is rotten, all the icing in the world won't put it right. It looks so appetising but it will make you sick. It's not completely off the wall to say it may even kill you - he nearly did it once. OK, he probably won't. He'll just carry on making your life a misery, in between having a laugh and making cups of tea, for the next 50 years, or until he runs off with one of the women he is very probably cheating with. Hell, woman, you can do so much better!
Obviously it's going to hurt. A quarter of your life, all your adult life so far, has revolved around this man and his dramas. It will leave a big gap. You can and will get over it though - you may not believe it now but really, the sooner you rip that plaster off the more hurt you will be saving yourself in the future. Do it now, suck it up, cry those tears, and then wipe them and get on with being the best mother, daughter and human being you can. Love will come again - you're only 23! - and hopefully next time with someone who your love and support can help.