How can I filter out data that falls out of range from getting persisted?

If you want to stop persistence seeing a value, you’ll need to stop it at the channel level before it gets to Item.
You might use a transform profile that passes acceptable values or substitutes UNDEF (UNDEF states are not persisted).
Or something similar in the channel config, if the binding allows transforms.

Related