Hey @joshuadonaldson ,
You asked: "what is the best way to manage the SDKs for each microcontroller to be used?"
That's the basic issue that I've been struggling with for almost a year now and have never gotten an acceptable answer from NXP. The best solution would be to have the same level of SDK for all devices so that multi MCU code can be created that is portable with a minimum of fuss. I'm very disappointed that there isn't any kind of strategy to bring up all the Kinetis SDKs to a minimum that provides all devices with the SDK features of the featured/promoted Freedom and Tower boards.
To deal with this (I'm writing code for MCUs which have SDKs 2.7.0/2.8.0, 2.3.1 and 2.2.0) I'm structuring my code so that APIs and their functionality are called from MCU (SDK) specfic files which are unique to each project. Depending on the requirements and functionality, I use an inline method for the code rather than using a traditional subroutine/function.
@nxf58904 has a good suggestion to #ifdef check of the processor which should be put in the start of the MCU specific file so that an error is thrown if somehow the wrong MCU specific file was copied into the project. I'll add that to my MCU specific files over time to ensure I'm not bringing in anything I don't want to accidentally (although that's somewhat unlikely because I start my MCU specific files with "SDK2_7_0..." and if I have accidentally copied in and using the wrong file, it stands out in the file list).
Good luck - I feel your pain.
myke