Do you know how the block data get corrupted? I'd think there's some kind of verification process after the block has been downloaded, for example a hash of the block that can be verified, and if it's not adding up, then it should be downloaded over again?
And there is not some kind of repair tool that can fix only the blocks that are wrong? Would save a lot of bandwidth for the bitcoin network.
Core downloads blocks, verifies them, then appends to disk. It does not verify what goes on disk, and this is where you are having trouble. It is possible your machine is unstable as well. I would suggest you try to rebuild the database with a lower thread count (--thread-count) and record where/if the build fails again.
If it always hits the same spot, then your blockchain data is damaged. If it doesn't, then your system is not stable enough to handle a heavy CPU load.