"OffertsFirstly, for the sentence to be correct, there should be 's' to "forfait" and "offert", because it's a plural (there are 20 trips to be won, not just one). Secondly, as a French, "offerts à gagner" sounds to me like saying the same thing twice: "20 forfaits offerts" or "20 forfaits à gagner" both mean there's some contest, and as prizes, 20 free trips to Canada (in "20 forfaits offerts", even though "offerts" literally means "given for free", i think no one expects MacDonald to give free vacations to anyone showing up at one of its restaurants (even in the limit of 20). There must be some kind of lottery). Maybe they've been told by their legal department to add "à gagner" to make it clear that the trips are not just "offered", i don't know, but then "20 forfaits à gagner" would be perfectly fine, because if you win one of them, you expect it to be free ("Sorry sir, you did win a trip but you must still pay for it"...what would be the point then ?)
So, to answer your question: they forgot the 's' on 'forfait' and 'offert' on their bags (or you made a mistake when typing your post). "20 forfaits offerts à gagner" literally means "20 trips offered and to be won", but in French you would say "20 forfaits offerts" or "20 forfaits à gagner".
(And to be complete, i am not really sure "forfait" literally means "trip", but in this context, that's a good translation, "forfait" implies everything (flight, accomodation,etc...) is already paid for).