my post about the mass storage was just a great example of what you should expect when you apply it to what you are doing.
just replace mass storage for serial port. It should just work.
Just about all OS's have a terminal program like hyperterminal for windows.
You should work at this level with out adding code or any config on the host system.
Your usb serial port should just automatically show up in these programs serial port list just by you connecting your usb device to that new host.
although for some reason they have changed the names of the register names in the code as compared to the datasheet
I think the same is true for matching st's var names to var's defigned in usb doc's. I did notice that some of the usb orgs names are in the comments.
F407 and F429 are very nice
If it was me and I needed to write software for both the PC side and the stm32 side and I had a usb connection like this, I think I would save the first virtual serial for a simple serial console
send the needed data between the two(PC & F4) in packets and skip trying to encode/decode to a serial stream.
It is very easy to send and receive packets of data with USB. Once you have a good foundation in place it gets very simple in fact.
C