For the 1999+ model years the output of the OSS sensor goes only to the PCM. The PCM then "tells" the cluster what speed to display. One way to trouble shoot this issue is to use an ODB2 reader to "ask" the PCM what the car's speed is. Compare the speedometer to the PCM's values.
IF the PCM is correct, this proves the OSS sensor and PCM. It also means that the problem is in the cluster.
IF the PCM speed is incorrect, this proves the problem is towards the OSS sensor.
For a possible cluster issue, a common problem is with the Printed circuit foil traces becoming de-soldered at the connectors. In some cases it's possible to fix by re-soldering.
EDIT: Corrected reference to OSS sensor.
1996-1998 model years use an VSS sensor. The VSS sensor is a worm gear driven sensor.
1999+ model years use an OSS sensor. The OSS sensor is a non contact reluctor wheel sensor.