I've played around with the PIC18F2550 using modified MicroChip code. Trust me, it is way easier to hack their C code than try and write your own USB code. If you are not intimately familiar with the USB spec, then learning C from scratch will be easier.
You could download their code, compile it, and then look at the dissassebly listing if you really wanna see it in assembly.