As a brief footnote to this question, I just reinstalled MATLAB after replacing my hard drive. Now when I compile, distribute, and run the above code, it does EXACTLY what it was supposed to. AEven though the code is compiled on my 8 core machine, it collects the correct number of cores on any machine, rather than hardcoding to 8 like it was doing.
I don't know why it now works, but I suspect it might be due to the fact that I haven't tried to edit the 'local' scheduler on my rebuilt development PC, so the code is trully accessing the 'local' scheduler on each of the target PCs.
Weird, but a great outcome.
Nick