All USB headphones should work with basic features (audio out and mic in) with the standard Linux USB audio driver (snd_usb_audio). If your specific headphone is not mentioned as supported, you will lose certain extra features like active noise cancellation, surround sound emulation, etc. Take a look in this wiki, and for surround, this help page. If you have this driver installed, and most probably you do, and you still don't hear anything, keep in mind that your USB headphones would appear as a second sound card, and you may have to play with PulseAudio to stream your audio to them. I think pavucontrol is a good place to start to see if you can avoid complex setup. If you do not use PulseAudio, it is a good day to start - plain ALSA will not play well with complex setups when you have many input and output audio streams.
Writing your own driver is not a trivial task. Apart that you'll need to familiarize with some parts of the kernel source, you should take these two things into account:
1) Companies don't give technical documentation. You'll need to resort to reverse engineering in order to discover how it works internally.
2) For the aforementioned advanced features, you will need to have some good expertize in Digital Signal Processing field.
But if you like experimenting and/or if you are interested in software engineering, it is a very rewarding experience.
PS: yes, they are "regular" device drivers running in kernel-space, but also yes, you'll have to also interface your driver with the ALSA API (which is also in kernel space).