Parity bits are rarely used these days for serial transmission. For critical data, a CRC or similar checksum strategy is more practical. In the event of an error, you would typically need to re-send the entire packet anyway.
If you are sampling at 5-10Hz, I'd forget about CRC and retransmission on error. I'd just do some simple filtering to discard any outlier samples. The physics of your system will determine the maximum possible rate of temperature change. If you see a measurement that represents a physically impossible rate of change, ignore it and wait for the next one.
The M4 and MAX31865 are capable of sampling at that rate. Python is the unknown. If you avoid doing anything that involves memory allocation within your sampling loop, you should be able to avoid unpredictable garbage collection activity by the CircuitPython runtime.
I share your opinion that the sensor response time limits the useful sample rate and that post processing can eliminate the errors.
I understand you that 5-10Hz is possible with python, but only without CRC.
What I didn't understand is if CRC is implemented in the Circuit Python library at all, or how much effort would be required. Now of course without CRC.
But for an application such as yours, CRC doesn't make a lot of sense. In addition to the overhead of the CRC logic at both ends, you have the added complexity of re-transmission.
Since you are transmitting at 5-10Hz, it makes more sense for the receiver to just ignore obvious errors and wait for the next transmission.