Hi,
> it has different data in it but the values are all correct that the checkpoint will pass.
Can you describe an algorithm that checkpoint should use to determine that values are correct?
General idea of checkpoint is to store a snapshot of correct data and then compare actual data with stored. If they match then, by definition, actual data are correct. If they don't match then actual data are incorrect just because they don't match stored data that you declared to be correct.
So, checkpoints can be used only if your code uses the same data (static data) for every execution.
If your data are dynamic, then you must somehow define/calculate expected correct data and compare actual data with those expected correct data.