The early version of MEMS 1.6 suffer from ECU faults that can cause the same problems you are experiencing, of high idle speed . Have the ECU bench tested I feel it will be faulty on idle control / stepper correction .
The later MEMS systems do not have a physical idle switch but use the TPS volts to simulate a idle switch check the TPS output at idle .
Switch ignition on and press throttle 5 times to full throttle , this will reset TPS adaptation and set stepper motor to 25 steps. Check TPS volts now and should be about 0.425v to 0.600v.
If these values are correct then I would say the TPS is ok and you have a ECU Fault.