I discovered a workaround, but my original question still stands...
since myRow.cells is inconsistent, I can't call myRow.getCellFromKey("itemnumber").getValue(), since that cell sometimes doesn't exist, thus, is null and that line causes an error.
However, I can call parseInt(myRow.Element.cells[2].innerText) to get what I needed. It seems myRow.Element.cells has the complete cell set, whereas MyRow.cells is iffy.