Are the cutoffs different?
In the read data case, you define the pair_style lj96/cut 12
command before the data file, so that will be the cutoff.
In the read restart case, you do the same, but that means
the pair style stored in the restart file will be read in
and override that command in the input script b/c it comes 2nd.
So if the run that wrote the restart file used a different cutoff,
that will be the one used. You can avoid this by (re)defining
the pair_style command after you read the restart file.