The “could not be resolved” errors are in fact not due to not referencing some files but to reference useless header files... In fact CubeMX provides the header files for all supported chips, not just the one used, and these header files are not protected by #ifdefs inside the file but around the #include that references them...
The net effect is that, by default, System Workbench will see several definitions for, say, SysTick_IRQn, and has no clue to which one is the right one, so the “could not be resolved” message.
To correct that you just have to switch System Workbench to only parse header files that are effectively included in your source files, either globally (in Window >> Preferences >> C/C++ >> Indexer) or just for the current project (in project >> Properties >> C/C++ General >> Indexer and checking the Enable project specific settings checkbox) and uncheck the Index unused headers checkbox.
Detailed explanations are in this FAQ: ((http://www.openstm32.org/tiki-view_faq.php?faqId=4#q21|Why did the IDE complains that SysTick_IRQn can’t be resolved when my project compile cleanly?))