So the mechanics set mac address and device types as permanents (to maintain a 2 value constant for which device is referenced between tables in the database). That explains why it's only checked once at time of adding the device.
Now to workaround the current state, here's the steps for the workaround I suggested in my last post, but added details to it:
1) go to manage page for the controller that's showing wrong model
2) set IP to something else that won't respond to SNMP
3) in the db, set the lan_mac address to something different as well (this step is required in order to fake out the database for the replacement)
# dbc "update ap set lan_mac = '00:0B:86:11:11:11' where id=<ap_id>"
ap_id is gotten from existing controller entry's URL
4) go to device setup -> add
5) add the controller again (with correct IP)
6) confirm that it comes up with correct model
7) then go to the original controller entry (it should be reporting down by now) and do replace hardware, selecting the newer good controller entry as the replacement
This should keep historical data attached to the controller entry.
I ran through this in the lab and it works. If you need assistance, you can open a support case and they can walk you through these steps.
Meanwhile, I'll open a discussion with the product team to try to come up with a way to address the issue of replacing hardware and reusing the same IP without having to perform this workaround to get the device type updated.