I've attached a copy of the form.
So first, you didn't modify the script as per the instructions, i.e. change the loop parameters in the "reset" portion of the validation script to fit the number of radio button groups on your form.
It is this part of the script that is clearing out the color, and it shouldn't be called by just tabbing or clicking between fields. But here is a modification that will handle this situation.
if(event.source)
{// Detect value change in a field
var aMatches = /^(Group)(\d+)$/.exec(event.source.name);
if(aMatches[1] == "Group")
{ // Field that changed is one of the radio buttons
// Find the widge number for the one "No" button
var nWidgeNum = 0;
event.source.exportValues.some(function(a,i){return (Number(a) <= 0) && ((nWidgeNum = i) || 1);});
// Set the background color for the "No" button only
this.getField(event.source.name + "." + nWidgeNum).fillColor = (Number(event.source.value) <= 0)?color.red:["T"];
}
}
else
{// Detect general change event with no source. Possible reset
// Set background of all radio buttons in group to transparent
// ***** Without knowing how many buttons there are this is problematic
// ** Fill in the loop limits properly for this code to work
var oFld;
for(var i=1;i<24;i++){
oFld = this.getField("Group"+ i);
if(oFld && (oFld.value == "Off"))
oFld.fillColor = ["T"];
}
}