Creo que esta pregunta es muy difícil, porque es una expresión de agradecimiento muy educada. Pero es muy importante que aprenda expresiones particulares de Japón así.
Si yo contestara sería
先生に すっかり ごちそうに なって おみやげ まで いただいて しまいました。
O sea el orden correcto es 4) 2)1) 3).
El すっかり significa completemente, y すっかり ごちそうに なって es me invitó (alguna comida) completemente.
El おみやげ es recuerdo, y まで significa aun o hasta.
Por eso おみやげ まで いただいて しまいました significa me dió hasta un recuerdo.
Voy a probar a escribirlo en mi mal español.
Profesor, le agradezco muchisimo que me invite la comida completemente, y me dé hasta un recuerdo.