The basic script looks correct, but I wonder about names and name IDs. Is it possible that AR Name is a text field with the student's name and Name ID is a field (possibly number) with the student's ID number? That would cause this script to fail.
In fact, just having AR Name text and Name ID number--even if both store a name would cause your script to fail. So would having AR Name text and Name ID number.
Another source of trouble is the layout change. Changing layout's can trip a very long list of script triggers on both layouts. If one or more of those have been set up to perform a script, your current script is paused, the triggered script is performed--possibly changing context, values, layouts...before your paused script is allowed to continue. This can interfere with your expected results.
Got it to finally work! Thank you for your help PhilModJunk! Here's the only line that I changed:
Set Field [ AbsenceReport::Name; $Name ]
Just took "ID" out of the string, effectively making it reference a different field, and it works like a charm. The "Name ID" field is a combination of a number and then a person's name. I can see how that would cause problems now, and I probably should have caught that.