Generell hatte ich auch schon mit einem Xmega die Erfahrung, dass die USB implementierung von Atmel etwas buggy ist (gefühlt, weil sehr umständlich zu bedienen). Ich habe es damals so genommen, dass ich die fertige USB Implementierung aus dem Atmel Software Framework (ASF) genommen habe.
Du könntest entweder die Implementierung im ASF nehmen, sofern das für den AVR90USB vorhanden ist, oder dir zumindest die Code der Implementierung anschauen.