Hannah was made to be the well-adjusted female version of season-1 Chuck—funny, charming, nerdy, sweet, innocent, open-hearted, loving, trusting, bright, looking for a real relationship. All the positives that Chuck had in season 1 but without the negatives (neuroses, self mistrust, and self loathing). So, in a sense, yes, she was perfect for Chuck because she was Chuck, a well-adjusted female Chuck. Down to her job as a grossly overqualified nerd herder. Just like Chuck.
The way Chuck handled Hannah was hurtful because, during his dark phase (3.05-08), he treated her in a way that Sarah was unable to with season-1 Chuck, and he did so to the best version of himself in the form of Hannah. Being honest with Hannah (himself) at the end of 3.08 Fake Name was the first step on his path of redemption (3.09-12).
But in truth, Chuck and Sarah are perfect for each other because they are different, because they don’t just mirror each other, like Chuck and Hannah, but complete each other; Sarah models competence for Chuck and encourages him from the very beginning to overcome his self mistrust and to see himself as the hero he is. And Chuck models innocence and vulnerability for Sarah, awakens her sense of reality vs appearance, challenges her moral imagination, and inspires her to turn from “nothing but a spy” into a woman who allows herself to love and be loved.