the fact the car starts and runs means you're getting the 13x and 24x signals from the crank to the ICM and the PCM.
the fact that you are able to see RPM over the OBD-II connection means the PCM can see and output the signal.
the fact you swapped dash modules and it doesn't work on either means the tach signal isn't getting to the IP cluster.
the fact that MPH works says that the MPH signal is getting to the cluster
both RPM and MPH are driven by the same data as the HUD and OBD-II. I can't find a good reference online for the cluster wiring, but I will check my service manual tonight and post back again later.