The parameters you mention experimenting with do not include all the training options (see below for a more complete list). You could also try a different training algorithm, e.g., adam. Because it is a larger input/output dimension, you may also need to change the network architecture so that it has more weights to manipulate.
options = trainingOptions('adam', ...
'MiniBatchSize',5, ...
'MaxEpochs',100, ...
'InitialLearnRate',ilr, ...
'L2Regularization',1e-4,...
'LearnRateSchedule','piece', ...
'LearnRateDropFactor',0.8, ...
'LearnRateDropPeriod',5);