I believe I've figured this out. When it reports the range of m values and how many iterations there were of each, it's basing that not on how many migration edges you
allowed in the runs (1-10) but how many were actually
used in each run, since Treemix is evaluating all values up to the number you allow and then going with whichever has the highest likelihood. So when it says m ranged from 0 to 4, that means that none of the runs resulted in an m value >4 having the highest likelihood. So I don't think it's actually a problem although it is very confusing.