I'm not sure about the shift light being rpm dependent based on it coming on for me at different rpms in different gears.
As far as the speedo
check the speedometer gear, 2 bolts on the back of the transfer case with wires coming out, and inspect the gear for wear
the gear could be torn up or just barely making contact.
also check the motherboard behind the cluster for the speedo, it can be corroded and give false readings, just wipe the grime off
with rubbing alcohol, BUT DO NOT SCRATCH IT to get grime off or your speedo will not work at all