Haskell, 126126 115 bytes
u[]=1>0 u(h:t)=h`notElem`t&&uimport tData.List f m=[init r|r@(h:t)<-[scanl(\a x->sum[d|d<-[1..a-1],a`mod`d==0]a`mod`d<1])y[1..m]|y<-[1..]],h==r!!m,ut==nub t] - I'm pretty sure it can be golfed.saved 10 thanks to @benrg