When inserting a tempo marker via the action "Insert time signature/tempo change marker at edit cursor" and its dialog box, REAPER follows the tempo envelope's timebase setting correctly.
For example, if Timebase=Beats, subsequent markers stay at their beat positions:
Before:
After inserting a 60bpm marker via dialog box:
However, if tempo markers are inserted by copy/pasting points from other parts of the tempo envelope, REAPER acts as if Timebase=Time and the later markers shift away from their beat positions -- even though the Timebase for tempo envelope is Beats (and even the Timebase for normal items/envelopes/markers is Beats).
For example, after copy/pasting the 60bpm point that was at measure 10 above:
BTW, there is nothing unusual in the envelope above. The tempo points in the chunk are merely:
PT 0.000000000000 120.0000000000 1
PT 8.000000000000 119.9999999920 1
PT 16.000000000000 120.0000000000 1
PT 18.000000000533 60.0000000000 1