I've just found this cracking little tool, "mkvrepair", although it's been around since 2009. Yea, better late than never.
Made by the author of "DivFix++ ", and already it's made playable over a dozen .mkv files I've been having problems with.
To clarify ... I've a dozen .mkv files, a complete TV series, season one, which play fine through my TV's USB socket, but my Sony Blu-ray player will only play the first 5 mins approx of each file, and then freezes with the audio continuing to play. The videos couldn't "seek" either.
I want to play them through the Sony because it upscales them significantly.
A little research shows this freezing to be an apparently common problem.
Running each file through "mkvrepair" fixed them. They now play through the Sony and I can fast forward/backward.
I have a number of other mkv files which play through my TV but the Sony spits them out with an "unknown format or corrupt file" message.
A run through "mkvrepair" fixed these also.
I'm sure there will be mkv files which can't be repaired, but in my case, it's fixed every problem mkv file I've put through it.
For anyone trying it, be aware that there are no controls whatsoever, just a small window into which you drag and drop your file, and the "copy" is immediately created in the same folder as the original file with the same name but with a "Meteorite." tag affixed to the start of the name to differentiate it from the original.