I have no idea why it would occur. All I can do is provide a simplified example and some observations in case you intend to bring this bug to PTCs attention (good luck).
The bug shows up if the matrix has more than 1 column and is seen in all columns which include at least one text entry.
A crude workaround could be to always call the routine with MatrixCol.min(stack(...)) instead of just MatrixCol.min(...).
Indeed a very strange bug.
BTW, don't put M <-- stack(M) as first line in your program as if you do it will fail in any case when text is involved.