So the reason that happens is due to the fact that the object as a whole is not stored but only a link to it instead.
In other languages this would be called a pointer and you may have to iterate trough your array saving each value with
File.store_var and on load
No need to create a new list either just write the values back to that array.
for val in my_array:
index = my_array.find(val)
my_array[index] = var2str(val)