Try creating (in your fresh script) keystrokes to change ent.skill20 manually and have its value displayed as a number in a text panel or something. That way you can see if any odd numbers are getting into skill20, or at least exactly what values are making it go screwy.
"There is no fate but what WE make." - CEO Cyberdyne Systems Corp. A8.30.5 Commercial