Perhaps another question that should be answered when considering whether or not they have been forgiven is forgiven by whom? In Amir's case, I think he might have been able to finally forgive himself after he fights (or takes a beating from) Assef and then rescues Hassan, which is what Rahim Khan wanted him to do. Soraya seemed to forgive him too since she stayed married to him.
It seems Amir and her parents forgave Soraya after she ran away, but it doesn't seem like the other townspeople forgave her since no males asked to marry her; in other words, her unforgivable actions and reputation followed her.
As for Baba, he preached to Amir about theft, the only true sin, and how every other sin was a variation of theft. We learn later in the story that Baba never told the complete story of Hassan and Ali, so in a sense, Baba committed quite a signifcant sin. Amir is, of course, furious when he hears the news from Rahim Khan. It's really up to the reader whether or not Baba's choice to keep the truth a secret even until his death is forgiveable or not.
I'm not sure what Hassan ever did that would need redemption or forgiveness - he seemed to be the only loyal, mature character in the whole story.