Okay, this is very interesting:
I printed dd["creation_time"] for the 10th data dump (last before restarting enzo) and the 11th and 12th (just after restarting). The former has all non-zero creation times. The other two have many, many zeroed out creation times. My theory is this IS enzo's fault, and that it's zeroing out the creation time when it loads in data for a restart run.
My ham-fisted method of opening each file and summing all particle masses got around this because I wasn't checking creation time > 0.0. I can get away with this because I do not have live dark matter, but in general this should be fixed (in enzo).