But before the contract he used to hold my hand and kiss me. I know that it is haram (impermissible) according to sharee’ah (Islamic law). Will Allah forgive me now that we have done the marriage contract or does the sin remain and do I have to ask for forgiveness and offer expiation?
Many people use the word “engagement” to refer to the period following the marriage contract and before consummation of the marriage. If this is what is referred to in the question, then there is no sin on you for what happened between you, because simply by doing the marriage contract, the woman becomes the wife of the man and there is no sin on either of them for enjoying the other.
But if what you mean by engagement is simply promising to get married and agreeing to do so without doing the marriage contract, then what happened between you is haram. During this period Islam does not permit anything more than looking so that both the man and woman can be sure that they want to go ahead and get engaged. What you both have to do – in this case – is to repent, seek forgiveness and regret these actions. The marriage contract between you is not sufficient to expiate for these sins, rather you have to repent and seek forgiveness.
With regard to expiation, there is no specific expiation for what has happened between you, but it is prescribed for the one who repents to do a lot of righteous deeds such as offering nawafil (voluntary) prayers, fasting, giving charity and so on. Allah says (interpretation of the meaning):
“And verily, I am indeed forgiving to him who repents, believes (in My Oneness, and associates none in worship with Me) and does righteous good deeds, and then remains constant in doing them (till his death).” [20:82]
And Allah knows best.