um.. excuse me?! HE CAME BACK AND FOUGHT FOR/WITH HIS FAMILY.
Remember what he did after Fred died? Remember the scene in the movie when he comforted George?
Yes, he made a mistake, but he realized it and came back. His family forgave him and so should everybody else! Seriously if you can forgive Snape for what he did, then you can also forgive him, because afterwards
Perce came back when we needed him the most. :)