I've upgraded from HC11 E9/E20 to S12 in the past. It was a pure assembler project, so there were no other options (as there would have been, had it been written in C). The major difficulties we experienced were related to hardware peripherals.
The main thing to consider when porting is the different memory layout, where banked memory etc. is possible. And particularly the EEPROM, which works quite differently. If you are using the EEPROM of the HC11, you need to consider which S12 part to migrate to very carefully.
The earliest released S12 derivates like S12D have on-chip EEPROM, but since that family was released 10 years ago, it is otherwise somewhat old-fashioned today: no on-chip low-voltage detect, 10-bit ADC, numerous unresolved silicon bugs, peculiar, mildly useful on-chip PWM etc etc. I wouldn't recommend this part for new designs, but Freescale stubbornly refuses to put any EEPROM or data flash in newer parts. If EEPROM is important to you, you must either consider external EEPROM circuitry, or look beyond Freescale for alternative MCUs.