You need to re-read the mesh from the checkpoint, rather than reading the function onto its initial grid. See
For further questions, please try to reduce the amount of code to something similar to the post I am referring to. You do not need to solve a diffusion problem to illustrate your issue. Simply create some initial conditions in the mixed space, and write them to file and try to read them back in.