Mobs (with CanPickUpLoot set to 1b) don't swap out their armour for better ones.
Steps to Reproduce:
1) Run
/summon zombie ~ ~ ~ {CanPickUpLoot:1b}
2) Drop an iron helmet and wait for it to wear it
3) Drop a netherite helmet and note that the armour isn't swapped
Thank you for your report!
We're tracking this issue in MC-259259, so this ticket is being resolved and linked as a duplicate.
If you would like to add a vote and any extra information to the main ticket it would be appreciated.
If you haven't already, you might like to make use of the search feature to see if the issue has already been mentioned.
Quick Links:
📓 Bug Tracker Guidelines – 💬 Community Support – 📧 Mojang Support
📓 Project Summary – ✍️ Feedback and Suggestions – 📖 Game Wiki