A little update, I haven't had a lot of time to work on this yet but did find that the cause of the import problem was a special character that the database wasn't happy with. I need to investigate a bit further as the stats logs are now being produced in a different character encoding than they were when I first set things up. Once I've tested the new format and am reasonably sure that it will import okay I can turn the automatic importing back on.
Deleting all the duplicate matches that were imported will be another job and until then it is yet one more thing that is skewing the player rankings. It would probably be smart to include a check, when importing, to make sure duplicates can't be imported again. Trying to decide the best way to delete all the duplicates at this point.
MariaDB [utstats]> SELECT id, time, count(*) FROM uts_match GROUP BY time HAVING COUNT(*) > 1;
+-------+----------------+----------+
| id | time | count(*) |
+-------+----------------+----------+
| 24728 | 20230113212825 | 2 |
| 24733 | 20230114141242 | 2 |
| 39554 | 20230703000428 | 87 |
| 69684 | 20240531210208 | 71 |
| 88353 | 20241231223316 | 589 |
+-------+----------------+----------+
5 rows in set (0.123 sec)