As always on Karel programs you are digging blindfolded for a needle in a haystack.
You must insert some debug messages or setting variables, you can observe on TP into the Karel program to debug it.
Edit: you can compare source of old and new code to see the difference, as you said the older one runs on all robots.
Inserting messages is the way to go to debug when you can't see the code being executed... also, keep in mind that even while karel is compiled + encrypted and you can't see what is being executed, the line number from the .pc file matches the one of the .kl file.
So if the robot reports an error on line 8 of the karel routine and you have the karel source code, check the line 8 on the source code as it will be the same.