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.