From what I understand reading the question, I assume the arrays are filled with reference-types, but C# does not provide a way to "just copy" a reference-type. It will only copy the reference to the object (so, then 2 things will point to the same thing).
So, putting reference-types in an array and then making a copy of the array, will not "just" make a copy of a reference-type (because C# can't do that, within an array or not).
That's why 0 of the answers given here will solve the problem. Sheng's answer is correct (but will not solve the problem) -and could maybe use a bit more explaining.
If you want to make copies of references-types, you should look into ways of doing exactly that. Like, converting them to and from JSON, or make a copy-method yourself, maybe by using Reflection.