I wasn't mad at the ending until I realized there was a massive pothole in the story line. The time lines to not add up! Let me explain...
Marion Cavanaugh died in 2007. Toby was born in 1994 so he must have been 13 at the time. Charles/CeCe is one year older that Toby meaning he was 14 when Marion was pushed off the roof by Bethany.
CeCe told us that after everyone believed he killed Marion that he spent the next to years on tranquilizers drowning in his own drool. This means that Charles/CeCe was on drugs from 2007-2009
Allison went missing in 2009. We know that CeCe was there that night as she was the one who hit Allison. However, if the timelines were correct, Charles/CeCe would still be in Radley drugged up and still identifying as male as it was only after the two years of being on tranquilizers that she transitioned into Charlotte.
I am sooooo disappointed that the story had so many potholes. There were more as well but this one was the biggest shocker!