I'm not able to find a software migration guide. Going through the TRMs, I don't see what would cause the issue.
I'm using a modified version of a BSL-based flasher (https://github.com/jadonk/cc2538-bsl/tree/add-bcf-and-zephyr-west-support) and the checksum looks good. The binary is produced using Zephyr and works fine on a CC1352P1.
What is different between these devices that could cause an image not to execute properly?