Hi gqlei@taisingind.com,
I hope you are doing well.
I checked the commands that you are using and I found that they do not follow the command structure that NTAGs can understand.
For example, in order to set a password upon a new NTAG213 you must write the password into the PWD page of the TAG’s internal memory. To do so, you need to use a WRITE command, which is structured as it follows:

You can consult command IDs and structures on the NTAG21x datasheet: https://www.nxp.com/docs/en/data-sheet/NTAG213_215_216.pdf
So, in order to set the password 31323334h, you should send A2h + 2Bh + 31323334h + CRC
I used NXP TagXplorer to set the password 31323334h into an NTAG216, and the log file produced reads as it follows:
Set password 31323334 with PACK 0000:
2019.07.25.12.12.47 : Command APDU : FFFE000006A2E531323334
2019.07.25.12.12.47 : Response APDU : 0A9000
2019.07.25.12.12.47 : Command APDU : FFFE000006A2E600000000
2019.07.25.12.12.47 : Response APDU : 0A9000
2019.07.25.12.12.47 : Command APDU : FFFE0000051B31323334
2019.07.25.12.12.47 : Response APDU : 0000A01E9000
Authentication:
2019.07.25.12.16.04 : Command APDU : FFFE0000051B31323334
2019.07.25.12.16.04 : Response APDU : 0000A01E9000
With that setting I had no trouble setting, removing and authenticating the password. Could you please try it on your TAG? You can use NXP TagInfo on a mobile device or NXP TagXplorer on a PC to verify the effectivity of your commands by writing and reading on writable memory locations.
I hope this information helps. Please let me know if you keep having trouble and I will be glad to assist you.
Best regards,
Javier