Hey, Stephen,
I've never run into this, so this is just a wild guess - in the return statement of your function RepairTotal, can you do the ISNULL check there? That way you "shouldn't" ever get back a NULL from the UDF...just a zero if it was null.
(my theory is that ISNULL only works on fields, not formulas)
Let me know if that helps...
Kevin