The “replaced by a slower train…” text on RTT is their (RTT’s) translation into layspeak of the delay code; the true text of which
@skyhigh posted in post 3.
It’s also based off what is put into delay attribution systems; which may not be correct, but as the delay investigation and attribution process goes on will ultimately get changed to the real code days or perhaps even weeks later. I don’t know if RTT gets fed those later updates.
So a NR delay attributor doing initial delays has seen a train arrive at Crewe, then go ECS to a depot. They potentially/likely have no further info; and so attribute it as a unit swap “MS”, and then in the message to their Avanti colleagues who pick up the next bit of the process will put something like “no advice or logs, TOC please advise”. Avanti will come back in a few days when they get to doing the delays for that day and change it, if necessary, to one of the traincrew codes (TG/TH) if it was a shortage of traincrew.
Meanwhile the customer info side of Avanti does know what is really going on, so puts out the messaging to frontline teams and passengers that the train is cancelled due to crew issues.