https://github.com/OpenZeppelin/openzeppelin-contr...
Вы используете _burn не проверяя есть ли этот токен вообще, как это сделано в расширении
https://github.com/OpenZeppelin/openzeppelin-contr...
Советую вам не мудрить в данном случае и воспользоваться визардом erc721 от того же openzeppelin
https://docs.openzeppelin.com/contracts/4.x/wizard (там есть опция burnable)