It seems that there was a struct that contained a pointer to what was actually an array of strings, but that was being handled simply as a pointer to the first string, then accessed with the array operator in the code. This is fixed by converting the declaration to this:
and referencing it as:
int nLen = (*MyArray)[i].GetLength();
Or, at least, so I currently think.