In the other version I wrote, I had bounds in place to keep monsters from running into one another and leaving the grid. I did not, however, think about the same monster being evaluated twice during the loop sequence. I think that might be it. I'll change it and post back my results. Thank you.
The same monster being evaluated more than once was the issue. I fixed it by moving the monsters to their new location on a different, temporary grid while the loop finished going through the rest of the main grid. Then, put the monsters back on the main grid in their new locations from the temp grid. Thank you very much.