for arrays, x is the row (or width) and y is the column (or height of each row).
so the answer to the second question is yes, increase the array width from 26 to 31.
then you need to decide exactly what data you want to store for each level. If it will never be more than 3 items, then you could just use three columns and then it is up to you to decide what item is in each column for each level. Or create 8 columns where each column is always the same item. It wont make a difference, so which ever way is easier for you will work fine. And you could add additional columns for any other data - best time, date, how many times the player has played that level, etc...
row 0 in the array is reserved for the other global variables that you wanted stored in local storage
To read data out of the array, it will always be Array.At(currentLevel,itemColumn)
so if Gold Stars is always in column 0, apples in column 1, oranges in column 2, you would set or read data from the array like this:
Gold Stars collected in level 2 = Array.At(2,0)
oranges collected in level 3 = Array.At(3,2)