What I'm saying is that there is an absolute truth to who Shadowheart was right up to the point where we meet her in that pod, and that history informs our initial interactions with her, is the point I'm making. She's always got a set history that is always the same once we get to that pod. And that history and what she's done and who she is when we meet her is what the people who have a problem with her and call her evil are talking about. Saying "well you can change her" isn't satisfying to those people because they take umbridge to who she was and who she is when we meet her. What we influence her towards doesn't change who she's been, the same goes for all the companions. No matter what we do, Wyll will still have made the pact with a devil, always for the same reasons. Astarion will always have been turned into a vampire spawn, Gale will always have tried to usurp Mystra. And it's those things people have a problem with. People look at the things they did in their past and decide "no, I don't want to associate with them because of what they've done and what they are now, and what they, based on their past and current actions will continue to be if I don't take the effort to change them.
I have always found this to be not a very productive approach. Your character is in a bad situation with other people who are in a bad situation. Trying to go on a morally high ground and judge them, even though your character has probably not been in a similar situation is not the most pragmatic thing to do. I guess it is less about changing them than surviving together. Seeing with whom you can make a compromise and with whom not. And maybe achieving great things together.
In addition, you, the player, know things your Tav is not supposed to know. And by the time you know them, you might have seen something different than what the past says about the said character.
As Shadowheart says about the party "We are all monsters in the making"