Hello Nitin,
I'm going to presume that you figured 12KHz with a nearly empty, or at least, less busy timer ISR. Since you've added the FIR code to the Timer ISR, the amount of time between each trigger of this ISR has increased which explains the decrease in overall frequency. What has not changed is the amount of time that you spend outside of the ISR. This is what is controlled by the CPU_TIM0_PLWR.
You can reduce *CPU_TIM0_PLWR but if you adjust the code inside the timer ISR, you;ll need to adjust this value again to maintain 12KHz. One thing additionally catches my attention; you have polling statements inside of the ISR checking I2S flags. Why not use an I2S interrupt?