I think all the characters had their positive/negative moments. The point of BtVS and Ats (IMHO) was to show the differences of all us - how no one is "entirely good" or "entirely evil" - but everyone has their mix of good & evil.
For example, Buffy - who we all know as "good" of course - what about when she wanted/tried to kill Faith in order to save Angel? I understand that her love for Angel & her anger at Faith were deeply intertwined. But killing a human? As Buffy said about Warren: "Being a Slayer doesn't give me a license to kill. Warren's human... the human world has its own rules for dealing with people like him." And the way I see it, Buffy was not just trying to save Angel... she was also looking for revenge on Faith.
Angel/Angelus... it doesn't get any more good/evil than that! And the flashbacks, where we get to see Liam, Angelus, and Angel BEFORE he met Buffy - man, what variety! LOVE IT!
Willow - oh, our beloved Willow! - anybody who watches the show knows the many layers of Willow. In fact, Willow was my favorite character (until I met Spike :hehe: ) and I loved her quirkiness & dorkiness & geekness... and I equally loved Dark Willow! - I loved seeing her exact revenge on Warren, but I know some people didn't like seeing her evil like that at all.
Xander - Also one of my fav characters in the beginning. Every hero needs its clown/grounder. Xander was both. Always with the jokes - which, if you look deep enough, you figure out that Xander joked mostly to hide his pain & fear. And he was the "True Blue" friend - so loyal, always there to help, even if he couldn't really "help" that much. And he grew into a strong man - not just helping with the good fight, but keeping his friends from falling apart (as they so often did.)
And as it was noted in S-7, he was the "seer" - nuff said.
Spike - IMHO, the most changing character on the show. And yes, he IS my favorite, all thru his "big bad" days, his chipped Spike, buffy-loving Spike, souled Spike, and finally (on Angel) ghost Spike... but I can run amok on every character.
I think about the "other characters" such as Oz... how hurt he was to see Willow kissing Xander... but then the next season, he screws another werewolf.
And Cordy... from bratty cheerleader on Buffy to "I'm Cordelia, I don't think, I know" on Angel. Her character grew in all sorts of ways.
Fred? - OMG, Fred! - from crazy Pylea cow to help-the-team with her brain lover of Charles, to demon fighter to demon... she too, grew in all sorts of ways.
Even the characters I didn't particularly like (Dawn/Connor) I still had respect for them. Dawn's whiney "pay attention to me!" brattiness got on my last nerve, but MT played her brilliantly. And she was awesome in OMWF.
And Connor - I loved the whole idea of his existence, his special powers coming from his parentage, "the child who shouldn't have existed but he did" ... but god yes he pissed me off everytime Angel TRIED to help him & he just went halfass psycho on him. (I'm not a fan of "troubled teens" stories...)
Still - even the flawed characters were a part of the show(s) that I loved AND STILL LOVE so much. The show wouldn't have been as good without the protagonist & antagonist layers of each character. Seeing them forced to grow... as Sweet said... "Now THAT'S entertainment!"
And I apologize for the length of this post! 😉