There is a warning on the firmware page saying that, if you select additional firmwares, you may have to adapt their configuration and that’s exactly what you got. This is especially true when using several third party firmware components; there is too much possibilities for a program to automatically guess which configuration will work for you (for example LWIP can work on Ethernet, but also on serial lines, with or without an RTOS, support UDP and/or TCP, work with fixed IP addresses or using RARP, Bootp, or DHCP, ...). For audio you may have to choose the source and destination devices, resolution, frequency... and the like for graphics.
What will compile without a problem is using just the ST base drivers; as soon as you add more, you may have to adapt configuration files and, in some cases, include/exclude some files/directories from build. The problem comes from the fact some firmwares must be configured differently if they have to work with other firmwares. For example the LWIP source code contains code to work with and without FreeRTOS. By default all code is included, which obviously cause problems.
When you want to use several additional firmwares, you may try using CubeMX, which is just trying to do that (similar to what Processor Expert does for NXP Kinetis chips): configure them and initialize the hardware accordingly, letting you choose which pins to use for the various devices you want to use, etc. CubeMX will then generate a project that should compile.
Hope this helps, at least clarifying things.