lambda sensor codes on a 1.6 are often a sign that there is an injector problem, which leads to unburnt fuel entering the exhaust, which leads to the lambda going out of range, which triggers the fault code. that doesn't mean the lambda is faulty, but it is easy for a noob mechanic to take an out of range lambda fault code as meaning the lambda is faulty.
if replacing the lambda has made no difference i think it would be unwise to replace it again. you will be charged even if it does not help. say to the garage you will pay if it fixes the problem, but only if it does fix the problem (dont part with cash unitl you've had a test drive to check its fixed). that may give them the motivation to diagnose it with more care instead of taking the reckless replacement approach.