It's not really a bug, as it is a set limitation to how REDIM works. I did a video explaining the whole process and how it all works behind the scenes here:
If one needs to REDIM and preserve beyond the first index, then they just need to write their own routine to handle it.
SUB CustomRedim (Original2DArray(), NewIndex1, NewIndex2)
DIM Temp(NewIndex1, NewIndex2)
FOR X = 0 to NewIndex1
FOR Y = 0 TO NewIndex2
If X <= UBOUND(Original2DArray, 2) and Y <= UBOUND(Original2DArray, 1) THEN Temp(X, Y) = Original2DArray(X, Y)
NEXT
NEXT
REDIM Original2DArray(NewIndex1, NewIndex2)
Original2DArray() = Temp()
END SUB