Проблема в том, что вы вызываете [] = для подмассива, содержащегося в вашем основном массиве.
другими словами, вы вызываете [] для своего класса, который вы реализуете для возврата этого элемента массива, а затем [] = для универсального массива, к которому у вас не заблокирован доступ для записи.
вы могли бы реализовать структуру, чтобы ваш класс создавал свои подмассивы, используя другие экземпляры MyClass, или вы могли перезаписать метод [] = Array для ограничения доступа.
Также стоит отметить, что в зависимости от того, как это будет использоваться, перезапись методов в классе, таком как Array, обычно не является хорошей идеей, поэтому вы можете захотеть пойти на что-то вроде моего первого предложения.