target_include_directories() vs headers in target_sources()

Multiple header sets, yes.

Overlapping BASE_DIRS, I think you are mistaken. CMake complained at me every time I tried.