It sounds like DAS or a variant thereof.
To match a unit number to a train, you need access to unit allocation data which is held in GEMINI. This is difficult and/or expensive to get access to, but if you’re working with a TOC, maybe they can upload their resource diagrams to you so you can match a unit to a train.
Another way you could do it is by looking at departures from an origin location and linking the unit to the train based on no other candidate trains. For example, if you have a GPS report from a train departing Charing Cross at 1816, and there was also a TRUST report for the on-time departure of train 882N58MV20, you could say that unit 465123 could be on this service. If you have multiple departures from the same location, it gets a bit more difficult, but you could build up some basic geofences around particular locations.
Yet another way is to have the driver selecting their train schedule. GPS can tell you the train is at Charing Cross, and you could return a list of services at Charing Cross and allow the driver to select.