U0003 Fiat Freemont is triggered when the bank 1 camshaft position sensor doesn't match the signal from the crankshaft position sensor. So if the problem persists despite of your diagnosis, then you should never hesitate to take your vehicle to your dealer or to a qualified mechanic.
Possible Causes :
If the scan tool has that capability, and the scan tool can operate the IMRC valves, then the problem is either resolved and a simple code clearing is all that's left or a new PCM would be called for. With the valve disconnected, the red voltmeter lead should be attached to the IMRC valve power wire and the black voltmeter lead connected to ground. Replace the oxygen sensor that is downstream from the catalytic converter on the side of the engine that does not contain cylinder #1. Also, if a oxygen sensor code stating "heater circuit malfunction" the sensor has most probably failed.
Diagnostic trouble code U0003 Fiat Freemont is not difficult to diagnose and repair. Thus, it always pays to have a qualified technician to look after your vehicle should this error code arise.
Diagnosing this code requires the engine to be in good running shape, without unmetered air entering the engine. If other codes that relates to misfiring condition, lean running or air entering the engine is present, then you must first fix those error codes before U0003 Fiat Freemont.
Fortunately, U0003 Fiat Freemont is a fairly common OBD code, meaning that it applies to all makes and models of vehicles made after 1996.