My guess is that it has some temperature probes, and one of them is meant to be placed onto the CPU but it's just hanging there. So if I am correct, the CPU temp on the screen is actually the temperature on the inside of the case, which would explain the 20 degree temperature difference.
If you are comfortable opening up your case then have a look and post back.
Oh, and SpeedFan is not accurate all of the time. This could be the problem right there.