I think that the problem is here:
Position ( -4951 14652 840.6770 1.0000 791.2520 )
Maybe the signals are linked between .rtsdb and .tdb only by signal position and the position must match perfectly.
But TSRE uses different number format than MSRE, so if you save MSRE route in TSRE, the position values in TDB file change.
TrItemRData ( -790.96503 201.037 -615.05896 -5248 14846 )
TSRE saves more numbers after "." than MSRE.
But if this is the case, then the bug should appear only once. When you first edit route in TSRE. After regenerating rts file, it should work fine in the future.
I don't know why RTS developers didn't use "TrItemId" arrtibute for data linking.
---
I think that best solution would be to make TSRE support for this rtsdb file, but I need some answers:
Position ( -4951 14652 -144.7790 1.0000 1004.2600 ) <- is it position from .W file or .TDB file?
NumSigItems ( 1 ) <- is it just number of enabled SignalUnits?
Name ( "М5") <- is it the name you see displayed above the signal?
UnitFlags ( 00000000 ) <- what flags can be there? I see three values in your file. "0", "1" and "4".
DefaultAspect ( STOP ) <- I see it is always stop in your file.
Yes, I know. Some parts of TSRE are 10 years old and I didn't know any other language than polish

But I don't see any reason why it could cause problems.