She hears you just fine. But because it's not what she wants you to be saying, she ignores what you've actually said. She is trying to manipulate you. I think you don't listen when we all tell you that (hmmm...), but probably because you generally categorize her as a "good person" and you think we are saying she's not a good person. But she can absolutely be a good person and still be manipulating you. She can be a good person who is desperate for a husband and babies, and who is scared to disrupt her life. Tt's not perfect, but it's the life she has and giving that up can be hard, as you well know, even when it is what is best). So she almost literally sticks her fingers in her ears and pretends you didn't say what you did, so she can have an argument with you that she can actually win, or twist to get the outcome she wants.
People break up with good--even great--people all the time. Some of the very best people in my life I'm sure I would have broken up with if we dated because they are *not the right person for me, and I am not the right person for them*. I get the impression that because you think she's "good", you can't let her go. And because you think she's "good", you don't want to put her through the reality of a breakup. But putting her instead through the reality of staying longer and wasting more time in a truly unhealthy relationship isn't a kindness. You have to be strong enough (for her and for you) to do what needs to be done, even if it is hard and harsh and ugly. And you've said all the things about this that can be said. She still isn't going to her it if you say them again.
So the time has passed for explaining this. You need to grow some courage and ACT. And it is not a kindness to explain (what has already been explained ad naseum) and soften and capitulate. Right now, the kindness is letting her go, and doing it in a way that lets her know, WITH CERTAINTY, that this is OVER. Fully over. Not "we will see in a year" or anything like that. Don't offer explanations, as those just give her things with which to argue. Any opening will be an opportunity for her to twist things to try to talk you out of it. Simply tell her that the relationship has run its course, you wish her well, but you are ending the relationship. And no matter what she says, repeat some version of that, even if it gets awkward. "But baby, I'll have crazy sex with you tonight." "No, the relationship is over. It just didn't work out." "But if we went to therapy more..." "I'm sorry, but my answer isn't going to change. I'm breaking up with you." "But why? You owe me an explanation." "We've talked about the 'whys' for months, or really even years. The aren't going to change. I know this sucks, but it is time to move on." "But..." Repeat, repeat, repeat. It will get awkward, but do not give her ways to refute or engage. And then, just say, "look, I've said everything that can be said. I'm sorry you are sad, but nothing will come from continue to go around in circles on this." And then leave to end the conversation.
We will assume she's a nice person, and you are too. What you need to do is see that you are not treating her with the kindness she deserves by allowing her to cling to hope. You want to be decent to her; that's very clear in your posts. But you are confusing gentleness with kindness. They are not the same. it is cruel--yes, you are being cruel to her (and to yourself, but it seems like you frame everything in terms of her) but avoiding concrete answers and unambiguous words and direct conversations.
Breakups are horrific. I'm sorry you are dealing with all this. But you are being terrible to both her and yourself but not being crystal clear about things.