You may find this GitHub useful with regards to MOT LRRP and it's structure.
I believe this should apply to both P25 and DMR.
It should be noted the use of VLQ encoding with some of the fields used in LRRP and probably ARS, TMS, Telemetry DATA packets.
Not decoding this encoding is probably why you are seeing strange values or not been able to determining the next token position in the data stream.
The IPv4 headers (with TCP or UDP protocols) should not be over looked as a source of identifying DATA packet types.
While I can't speak much for P25, the DMR standards say some of these header fields (not used by DMR) are fixed, but I have seen this is not always the case.
Thank you for your contribution, I am traveling today and I have not been able to test the software you indicate.
I think that it is actually very easy when you know the mechanics, that I have been able to certify that they carry GPS data with the SAP (service access point) equal to 1 (reserved), 3 (UDP/IP) and 4 (IP), but of course, it is not just these values, but it is the combination of the SAP, with the DPF (data packet format) and with 3 bytes placed in a certain position, of these 3 bytes there are also several different ones.
Depending on the combination of these three elements we will find the GPS information in a certain place in the data packet, but also, depending on them, there will be packets that do not provide the date/time information of when the GPS information was released from the MS or No speed or azimuth information will appear.