While writing this question and confirming results, I believe I discovered the critical difference in what I was trying to run and what was expected. Namely, for multiple changes at once to work, NameArray has to be forced as a cell array, even for a 1x1 size. Similarly, if NameArray is a 1x1 cell, then ValueArray has to be a cell array as well or else it'll error
Works:
set(objList(1),'Enable','on') % since both name and value are non-cells
set(objList(1),{'Enable'},{'on'}) % since both name an value are cells and appropriate size
set(objList,{'Enable'},statuses) % since Name is a cell (n) and objList is array (m) and statuses is mxn size
Doesn't work:
set(objList(1),'Enable',{'on'}) % since name is not a cell and value is a cell
set(objList(1),{'Enable'},'on') % similar to above, but name is cell but value is not
set(objList,'Enable',statuses) % since name is not a cell, but statuses is.
I think my confusion stemmed from the dearth of detail on the input arguments (see how for interp1 each portion is explained whereas set just has examples and tips)