I wonder how playing same file can lead to different results.
timing! For a file to be played back, the data needs to be processed by the decoder in time before it needs to be played.
If a player miscalculates how much it needs to read in advance to be able to always stay ahead of the playback, then things like data dropouts happen. Why that leads to green symbols on your screen, don't know, that never happened to me, that might just be a bug in your display hardware or its driver that fills "can't display anything, sorry" with "we take this random memory and show it". OK.
So, my guess here is that your USB flash has non-uniform access speed (that actually does happen to flash memory, because some regions might wear out faster than others). Doesn't change the data, but might simply delay reading a specific block. The fact that that's enough for your decoder to "run empty" is a bit worrisome. Check your sudo dmesg for indications that the USB drive reset itself in the middle of operations. Even if it didn't, I'd avoid storing important information on that drive; ECC on the flash memory taking very long is a relatively strong indication of a soon-to-fail piece of memory.