you need to store the inner array into a separate temporary array, then you can change its elements, then you need to set the outer array element to the temp array.
The best way in my opinion is to use a single one-dimensional array to store data and use a simple formula to access that data. Assuming that row is X and column is Y than the formula is Y * SizeX + X and you also have to specify the width of your 2D array (SizeX). Since the input array is wildcard it accepts any type of array, including array of structs. You can make two macros - Get2DArrayElement and Set2DArrayElement as in these pictures: