Hi 6pairs!
I don't really have suggestions on how you can solve the situation but I'll try to add a bit to the explanation about containers.
Imagine .mkv, .avi (etc) as boxes. Let's say mkv is a blue box and avi is a red box. From outside they look pretty much the same, just different colors. It's what's inside that matters. Both can support various types of video and audio codecs.
Why you see differences in sizes? It depends on what you download. For example, the norm for TV shows releases is:
a) for SD (Standard Definition) releases using the xvid video codec the preferred container is avi.
b) for SD releases using the h.264 video codec the preferred container is mp4. The specific codec leads to a smaller filesize for the same quality or a better quality for the same filesize, compared to xvid in avis.
c) for 720p (HD-High Definition) releases using the h.264 codec the preferred container is mkv. Such releases usually are about 3 times the filesize of SD mp4 releases but come with a very improved image (compared).
To complicate things, even a specific codec can have numerous adjustments. H.264 can be set in one of various profiles (baseline, main, high etc) or it can be set in one of various levels (3, 4, 4.1 etc). What problem might arise from that? You might download something the software/hardware you have cannot handle! It may have the mkv extension like the previous you downloaded and played just fine but that doesn't mean it has the same requirements for handling it.
I don't say it's related to your problem but in general it's better to stick with specific sources from where you get stuff. The site/the uploader/the description of file. One very useful tool to look what's inside a container is MediaInfo. But to check a file you have to download it first.
