What encodings did you try for that batch file? Have you looked at your two example filess (that did work, and didn't work) using a binary (hex) editor, to determine the exact difference between them that could be causing the effect you see? It is possible to spend a lot of time trying to fix a problem by adjusting encoding when the issue is actually much simpler.
I don't see what your looping problem has to do with a progress bar, but I think the issue is that you are not resetting the loop variable, and you are expecting the test to be executed whenever the variable is changed. It is not apropriate to use a counter when the test is simply pass/fail - a boolean is more effective, and you should code it so that it only relies on one test at the end of each loop. Your coding structure should look like this:
Do
AllOK = True
If Test1 fails then <whatever> : AllOK =False
If Test2 fails then <whatever> : AllOK = False
....
Loop Until AllOK = True