Moving code from an ARM M0+ to an ARM M4, what changes?
The CPU should not give you any problems, as you say the instruction set of an M4 is a superset of the M0/M0+ instruction set. Note that the timing might be different, so busy-wait based timing might not work the same.

Peripherals can be a PITA, I would not assume they are the same unless the datasheets read the same.