As you can see when changing the buffer size for the Rx-Buffer the interrupt for receiving a character is grayed out. That is because the software takes over to handle incoming characters and put them into the buffer. So just the remaining Rx-interrupt causes as overrun, parity and similar errors will be used. There is a chance to include some code in the UART's interrupt handler at the point a character is received.
I would suggest you to start writing your own code and handler. Begin with a non-interrupt solution which polls for the buffer containing the number of characters you expect(12) but choose a buffer-size that is larger. That can give you some headroom when processing on message and there is no time to poll.
Leaving the Rx buffer at 4 bytes, using the Rx buffer ISR, certainly
implementing a fifo copy into a buffer with a address pointer straight
forward. This approach requires you look at code execution time,
especially at higher baud rates.
Alternatively use component editor and create your own, or use verilog to
create your own handler.
It would be advisable, for error reasons, if there was a framing byte or indication
of some sort for the 12 bytes.
I forgot this is RFID, generally speaking data rates not all that high,
so code execution time may be irrelevant.
Thanx guys for your valuable advises i'll try out the suggestions made by you and get back to ypu
You are always welcome!