The problem is data.seed.
When you concatenate that numeric value onto character vectors MATLAB does not implcitly convert the numeric value to a character representation of that value, it actually converts it to the character whose character code is equal to that value. This is simple to demonstrate and resolve, see:
E.g. rather than awkward strcat yoiu could use neat and efficient sprintf:
name = sprintf('%s_seed%d.mat',struct(jjj).name,data.seed);