Anyway, the TM ends up having a lot of repeats in it. I'm not sure how many, but I wouldn't be surprised if 25-50% of the translation units are duplicates. Some of them are short, just one word, but there are a lot of them.
Is this a problem or does the TM work just fine anyway?
It's not a problem, leave it as is.
By default, MQ stores this kind of duplicates in order to save the context information.
So, if one day, you receive an updated document, you'll not be forced to revise it thouroughly, MQ will remember the correct sequence of TUs and you'll need only to check the efective changes.
BTW, in a lot of target languages (as Polish), the 100% matches should be always checked and revised because they may be translated in a different way depending of the context.
E.g., basically, in English you have no grammatical gender, the Polish translation of "it" may be translated in 3 different ways, MQ permits to apply the correct one if an appropriate contextual information is present.