It is often helpful to step through your code and examine the variables at each step. One problem could be the shape of your variable "List", which is also "structInterp(IndexloopStruct).Box". If this is a row vector, then it may be trying to fill it in as a row vector. If this is the case, then you can simply transpose List by calling List'. Another possibility is that you are not changing the first iteration number in your second for loop (for IndexloopFn = 1:5:(arraywidth)). This always starts with IndexloopFn = 1, which means you will always call columns 1,6,11,16,... If this is the case, you could simply call your for loop as: for IndexloopFn = IndexloopStruct:5:(arraywidth). This will produce sequences: 1,6,11,16,..., then 2,7,12,17,..., then 3,8,13,18,... and so on.
If not these problems, it's difficult to judge your problem exactly, but I encourage you to step through your code by clicking on the left side of the editor and creating a red dot on the line where you would like Matlab to pause.