It might be due to when you are doing the snapshots. Perhaps it needs to be after the skinning update.
Ok looking into your code you are destroying and recreating the characters per ReplayTimeslot. Wouldn’t a pooling system be better to not hammer the cpu / ram?