Vegeta's redemption arc makes sense, but I think a lot of people misinterpret when the arc actually happens. It is NOT when Vegeta teams up with Goku and the others to fight Frieza, nor is it when Vegeta helps them against Cell, NOR is it when Vegeta settles down on Earth to raise Trunks with Bulma. It actually happens about a 1/3 of the way into the Buu Saga.
By the start of the Buu saga, Vegeta isn't really "good" so much as retired from being a monster. The loss of Goku has left Vegeta without an opponent that could truly match him and instead he's become content to raise Trunks with Bulma since he doesn't see a point in fighting anyone when there's no one who could challenge him like Goku did. The Z-Fighters are still wary of him, but they're willing to let him stay on Earth since he's not attacking anyone anymore and is still the strongest person on the planet. If Villains Wiki existed in the 1980s when Dragon Ball Z was airing, Vegeta's page would be marked with "Remorseful" at this point but not "Redeemed".
But then Goku comes back (big surprise), this time because God intervened and resurrected him. And Vegeta, upon seeing Goku again, gets the realization that while he was raising Trunks and settling down with family life, Goku kept training, even while dead, and there's now a huge power gap between both of them. Unable to come to terms with the fact that his old nemesis is now leagues stronger than him again, Vegeta ultimately allows Babidi to turn him into a majin, basically forsaking the life he had before just to get another shot at his nemesis.
But Vegeta doesn't stop loving Trunks and Bulma. They're still his wife and son. Which leads Vegeta to be faced with a dilemma between them and facing Goku, and ultimately, he chooses his family. With Majin Buu now awakened partly due to his actions though, Vegeta has only one way to redeem himself and that's to sacrifice himself to stop Buu.
I think conversation Vegeta has with Piccolo right before his sacrifice really spells how selfless the act is. Vegeta is a Saiyan, which is a species that lives for an inordinately long amount of time (I believe Akira Toriyama has said that Saiyans only start to become middle aged when they enter into their eighties) and is basically a god compared to someone on Earth. And, as Piccolo notes, if Vegeta dies he's going to straight to Hell for the things he's done in his past; his sudden Face turn doesn't cancel any of the planets he destroyed or people he killed. Despite this, Vegeta, after hearing Piccolo's words, accepts his fate and the years of torment he will endure down in Hell, choosing to sacrifice himself and the long life he could have just to save his son and the entire universe.
Though Vegeta's sacrifice unfortunately did not work. And Vegeta ended up being resurrected anyway, but it's the intent that matters. Vegeta went into his sacrifice believing he would die and spend eternity in Hell, and he went through with it all to save someone else, speaking miles to how he's grown as a character.
In short, Vegeta's redemption is not something that happens within the space of a few minutes, like White Diamond, nor is it something where everyone just up and forgives Vegeta for no reason like in Naruto. There's a logical through line to the events that Vegeta experiences and how each of them pushes him towards turning good.
Vegeta also never raped anyone. That might help.