It's a cute, but impractical idea. It requires materials not to change properties over time, track not to wear, a globally distributed map that is always up to date and consistent.
Trains have very complex odometry on board already. You'd just add this new magnet sensor to the ensemble of sensors already in use to locate the train. Magnetic maps can be updated using reference markers with known positions, e.g. balises, from the data that trains collect.
If the properties are consistent enough, and it's inexpensive to update then it seems not unreasonable at all. They certainly seem to think so.
Each train would have a sensor which would be able to detect changes and update the database. Maps could easily be regional.
If you can update with changes on the fly, then you can propagate errors on the fly as well. There are likely some quite fatal corner cases that could be found the hard way.
It's a good thing we aren't using updated updated-on-the-fly computer systems for controlling powerplants, chemical refineries, trading on finacial markets or driving cars!
Knight Capital updated their your stock algorithms on the fly, instead of properly investigating the cause of failure[1], resulting in a loss of USD$460 Million after unwinding most of the trades with other firms.