I don't think Diana was evil. Nor do I think she was a saint. Instead, I think Diana was a deeply damaged individual who was able to charm the world and create an illusion of who she - and who others in her life - was.
Diana did great things. While she may not have always been as altruistic as she's frequently depicted, she did manage to bring awareness to a lot of great causes and brought a human touch to the interaction between the people and royals. Regardless of what failures she had, Diana was able to represent her country and, at least on solo engagements, the family she had married into in a great way. Had she been the daughter of the monarch instead of the daughter-in-law I think she would have been a great asset to the BRF.
However, she was the daughter-in-law, and I think her personal issues really prevented her from being a great Princess of Wales. What people seem to forget is that it's the job of the person who marries into a royal family to support and play second fiddle to their royal spouse. This is something that we see people like the DoE, Tim, and Sophie really shine in, but isn't something that Diana was ever good at. She liked to shine and she would, sometimes deliberately, outshine her husband when they were on joint engagements. Charles is often criticized for having been jealous of his wife's popularity, and rightly so, but Diana is equally deserved of a similar critique. She was jealous of her husband and others when they took the attention away from her.
Ultimately, though, when it comes to Diana, we really have to remember that she was not a mentally stable woman. She suffered from bulimia and depression, and may have likely had a greater emotional disorder that may or may not have been diagnosed. She grew up in a very unhappy home that very likely may have been an abusive one. She entered into her marriage when she was practically still a child and had as such unrealistic expectations of what she was getting into - she bought into the fairy tale idea of her marriage. I think, ultimately, the marriage was largely a political one, which in itself isn't a horrible thing (there have been many successful royal marriages that were undertaken more for politics than love, or as much for politics as love), but no one seemed to have broken the news to Diana. This criticism can't go just to Charles and the BRF, as Diana's family surely was aware of what was going on as well and didn't do anything about it either.
I do think Diana cared about her sons, and I even think she cared about Charles. She did the best that she could, but when it comes down to it I don't think her best was actually good. She didn't know how to be a good mother or a good wife because she didn't know how to put herself second. Charles had a similar problem in his first marriage too, at least when it came to his wife. I don't doubt that Diana's sons knew that they were loved by their mother, but I do think that she did them a lot of damage, particularly in the way she used them as pawns during the War of the Waleses.