Yes wrong one, it is in fact the RFID_TESTER code where you try and read the serial number.
I am now on my laptop, so can see all three.
Can you post a link to the libraries you use as these are non standard.
However at a guess I would make the following changes
uchar serNum[5]; // array to store your ID
change to
uchar serNum[9]; // array to store your ID
memcpy(serNum, str, 5);
change to
memcpy(serNum, str, 9);
However this bit looks rather strange
// Check people associated with card ID
uchar* id = serNum;
if( id[8]==0X45 && id[2]==0X08 && id[3]==0X7A && id[4]==0XFE)
Is that checking one person? If so I would expect the id index values to be 0 to 3 not the mish mash you have. As there are no run time errors with compiled then I suspect that you are accessing array locations that do not exist.
For a test with the full 8 digit UID I would expect something like this:- And I know this is a rubbish way of doing things:-
if( id[0]==0x4 && id[1]==0x08 && id[2]==0x7A && id[3]==0xFE &&
id[4]==0x4 && id[5]==0x04 && id[6]==0x15 && id[7]==0x45)