If I use chflags to set a file as immutable or append-only, would that prevent a ZFS scrub from being able to repair it if the file was somehow damaged?
Nope, as the scrub is looking at checksums at the individual block level. Files (which can consume multiple disk blocks) and their associated file permissions are higher up.