the check engine light comes on when the onboard computer detects a fault in either the engine performance, emission control systems, or transmission systems. There are over 600 diagnostic trouble codes that can turn on the check engine light, and range from the minor such as loose gas cap or vacuum hose leak, to major such as loss of engine compression or internal transmission failure. There isnt an issue on this vehicle of false check engine light settings. While most of the trouble codes will have outward symptoms, many do not have any noticable symptoms. By your description, there are symptoms associated with the check engine light being on, which could range from a vacuum leak, engine misfire, fuel delivery issue, or possible transmission sensor.
The onboard computer has to be read with a diagnostic scanner, and once the fault codes are retreived, then the associated troubleshooting steps will need to be performed as most fault codes have multiple reasons for being set.
If the diagnostics are done in order and correctly, then it will be repaired correctly the first time.
As far as costs, average diagnostic time is 2 to 3 hours labor, but may be less or more, depending on what fault codes are retreived and how far into the troubleshooting process the tech has to go to find the root cause of the problem. With hourly labor rates around $100 or more, you can figure on $200-400 for diagnostic time, and then cost of repair