I'm guessing the Report Writer is getting confused because in the UDF you are changing the value of the field that is part of the FOR clause. If I remember right, there seems to be some issues when you have filters set and use a FOR clause. I don't remember the specific combinations, but I do recall some problems that occur when you try to print from the preview.
I could definately suggest that you wait and update the records at the end of the report as someone else suggested. Otherwise, the user may cancel the report while it's processing. If there's an issue of other people may be adding records to the table while it's printing and you want to be sure you don't accidently mark a new one that slipped in and didn't get printed, use a temporary cursor. IOW, create a cursor that holds the primary key. In your UDF, add the primary key to the cursor. Then in the On Exit of the Summary band, or in code immediately following the REPORT FORM command, you can loop through the cursor and update the records in that cursor.
Cathy