Hi Phil,
I don't use KDS much but it seems to be set up roughly the same as CodeWarrior and MCUXpresso, and it ought to compile only the required files by default. Go to the project properties, and check the settings under C/C++ Build. I recommend setting 'Enable parallel build' at least - it's disabled by default, and on my machine it makes a huge improvement in build speed. Check that the other settings look sane.
Keep in mind that if you edit a .h file that's used by a lot of .c files, all of those .c files are going to get recompiled. I just checked with a simple KDS 3.2 project that hasn't had any obscure settings tweaked and I verified that editing one .c file results in just that .c file being compiled, plus linking of course:
20:09:11 **** Incremental Build of configuration Debug for project replay ****
make all
Building file: ../Sources/spiflash.c
Invoking: Cross ARM C Compiler
arm-none-eabi-gcc (...) -c -o "Sources/spiflash.o" "../Sources/spiflash.c"
Finished building: ../Sources/spiflash.c
Building target: replay.elf
Invoking: Cross ARM C++ Linker
arm-none-eabi-g++ (...)
Finished building target: replay.elf
See what you're getting on the console. I'd start by just building the whole thing when it's already built to see what it does, and then change just one .c file and see what changes. If it's recompiling everything, I'd check the makefile and see what it's trying to do.
Hope that helps,
Scott