Issue with loops

If mName is char* this is going to be a problem:

        tome[monsterMatch[m]].mName = strcat(tome[monsterMatch[m]].mName, monsterBuffer);

Firstly, all you need is :

        strcat(tome[monsterMatch[m]].mName, monsterBuffer);

But even then, you will write on memory you don't own. Make mName a char array with sufficient space instead.

It would be helpful if you posted the contents of monster.h.

So far, I can't see why you're using an Arduino for this. Easier to debug on the machine you're using to program the Arduino even if you do need I/O later.