ちょい理解した、2回動くのは想定外ということか。
結果を固定したいならこうするべきなんだろうな。
var array1 = intArray.Select(i => new IntClass { Int = i }).ToArray();
var array2 = array1;