PIO does not compile all included library classes which leads to linker errors

That is OK. You use #include <Arduino.h> within a library and keep it in old 1.0 format. See Arduino IDE 1.5: Library specification · arduino/Arduino Wiki · GitHub

According to Arduino v1.0 specification only the source files from ROOT of the library should be built.


Solution - convert Arduino library to 1.5 format. In other words, move all source files to src folder.