Sounds to me like your mechanic only has a simple OBD fault reader, or if he has a really decent machine he has not gone in far enough to find the root cause fault code at the bottom of this problem...........
Let me explain...........
Simple OBD readers only pull SOME emission related codes from the engine ECU, but they don't pull codes from the other ECU's like gearbox, ABS, Traction, Body Control etc. They can however pull a CAN bus code from the Engine ECU..........
P1221 is a CAN error, which in english means that one or more of the other ecu's has one or more fault codes.
These ECU's will then communicate this to each other by posting a P1221 code via the CAN bus
The engine ECU has seen this and gone into limp mode, also sounds like the gearbox ecu has gone into limp mode, or the gearbox electronics is where the fault lies.
However, if Traction or ABS was mentioned, I suspect it is one of those that is sending the CAN communication, and therefore it is probably an ABS sensor that is the most likely culprit.
What you need now is a more in depth code read with either Mercedes Star, or Snap On, Autologic or Bosch.
The latter 3 are the ones most decent independent garages will have and will give you the root cause code, which will then point you in the right direction.
Ask before you pay again whether they are able to access the other ECU's and tell them a CAN code is no use on it's own. If they look blankly at you walk away