Why is "facesti" a correct answer and not "facevi"?
I think the imperfect doesn't have the sense of completion needed for this. Facevi would give the impression that 'you would do me a favour' or 'you used to do me a favour'
Tu hai mi fatto un favore - why is it wrong?
The pronoun always comes before the noun in sentences like this. Moving past the Grammer rules, it even sounds better saying "mi hai fatto" instead of "hai mi fatto"
What about 'Lui mi ha fatto un favore' ?