Hi
Using bulk endpoints (as CDC and MSD will) and no USB hub the FS USB can achieve a maximum throughput of 9.7MBit/s due to overhead in the USB protocoll itself. [MSD has additional MSD protocoll overhead and so the absolute highest throughput would probably be acheived with CDC class]
The FS device in the Kinetis has a high interrupt overhead and the software design must also be correct to achieve this (making sure that the data for transfer is ready, in the correct buffer descriptor, when each packet is requested by the host and using the controller's double-buffering capability).
Each time the packet deadline is missed the USB device will send a NAK and it will miss out on a transmission slot, reducing the throughput equivalently.
You need to measure the amount of NAKs that the controller is sending and identify where the bottle-neck is when there are phases with then since it is invariably in the software design since the USB device controller can achieve 9.7MBit/s as long as the SW prepares the data correctly.
Interrupt overhead is high and the KL25 is of course not as fast as a K70 (etc.) so its (overall) SW design may need to be more optimised to get the top end.
Regards
Mark