The dealer said he checked them and there was no errors but am still having problems with it surging.
The dealer will have tested the TPS per the manual which simply says read the TPS and idle and full throttle. This only checks for a catastrophic failure. You need to check the area of the sensor inbetween these two positions.
Checking the TPS Sensor
This test is done using the Diagnostic screen. How to:
With the key off, press and hold the "Select" and "Reset" buttons simultaneously and turn the key on (do not start, just ON), continue to hold the buttons until the display next to the fuel gauge says diAG (5-10 seconds).
Release the two buttons. Now, press the "Select" and "Reset" buttons simultaneously again. After ~ 2 seconds the display should show d1:01 on top and a two digit number at the bottom. You are now looking at the throttle position sensor (TPS) output. The TPS value is the two digits at the bottom of the display.
Turning the throttle will change the digits. Normal is 15-17 with the throttle closed and 97 to 100 with the throttle wide open. When the TPS goes bad it can be catastrophic, where the two digit value is just plain wrong and doesn't follow the throttle at all. This could be the TPS, it could be in the harness that connects to the TPS or it could be the ECU.
The other failure mode of the TPS is to have 'dead spots' as the throttle is opened. This is the most common failure and it usually occurs at roughly 20-40% of throttle opening because that is range where the throttle is positioned for most riding. To check this -- very, very slowly open the throttle from full closed to full open and observe that the numbers climb with no skipped numbers and no drop-out readings (e.g. 45, 46, 47, 01, 01, 48, 49) The 01 reading is a 'drop-out'. This failure is almost certainly the TPS.
To leave the diAG mode simply turn the key off. Done.
Alan