USB protocol is divided into a number of classes , such as HID,Mass Storage,Audio etc.
1.You should try to look into a class that requires to transfer data at a high bit rate, examples of such classes would be Video or Mass Storage devices.
Classes which use bulk or isochronous packets to transfer data over the bus will have high bit rates,because they have a larger packet size and can have a bigger time slots to use the bus.
2.Then you should look at the code samples shipped with your board for the these above mentioned classes.
Could you give a little more insight on what data do you want to transfer between the board and the PC?
I would use something cheap and simple, like an Arduino, and an "LED display driver" chip. Then it does not matter how many PWM signals are on the MCU. In fact you could use a tiny MCU, maybe even an 8pin device. The "LED display driver" handles all of that.
Typically they drive LEDs directly, so dispense with any need for external transistors. Many have constant current source drivers, and so dispense with any need for external current-limiting resistors for the LEDs.
Many manufacturers make such chips, for example TI display drivers
Also Maxim Integrated
Many do PWM themselves. The PWM data is loaded over a serial channel (which could be done using SPI or bit banging), and the chip 'just does it'. Many use one external resistor to set the overall current for all of the LEDs.
Some come in DIP packages that you could prototype on a breadboard.
Some cost under $2.
They can also be 'stacked' end-to-end, so if you need to add more PWM outputs, you'd just add another part.
If you wanted to strip out the MCU completely, you could get a USB-to-SPI chip. I think it is more awkward than using an MCU, e.g. an Arduino, but YMMV.
Best Answer
This project implements CDC USB serial on the STM32F4 Discovery.
https://www.das-labor.org/trac/browser/microcontroller/src-stm32f4xx/serialUSB