USB Audio Input Jitter (?)
It's hard to be sure (since this is obviously not your actual code), but it appears that you have hard-coded the pattern of frame lengths on the USB side, on the assumption that the audio sample rate (i.e., the 11.2896 MHz codec clock) is strictly locked to the USB data rate (i.e., the 12.000 MHz USB clock). This would only be true if the codec clock was driven by a PLL that is referenced to the USB clock. In actual fact, they can be different by 10s or even 100s of ppm, given the usual tolerances associated with general-purpose crystals.

Instead, you should be picking the USB frame length dynamically, based on the actual amount of data you have in local buffers that you have received from the codec. If this total is above some threshold, you should send the longer USB frame; otherwise, send the shorter USB frame. This allows the average rate of the USB transfers to track the actual sample rate defined by the codec clock.