Playing samples at DAC Port

In order to troubleshoot/debug, You'll have to simplify... Start with something simple and testable and don't go to the next step until each simple step works...

I'd guess that the sample rate clock and the conversion from 16-bits signed to 12-bits unsigned are the trickiest parts of the software. If the 11kHz clock is off, the tempo and pitch (and playing time for the file) will be off but you should still get sound (unless it's way-way off). If the clock jitters badly you could get garbage. And of course the bit-depth conversion could give you garbage. But... That's just guessing... When you develop a program you have to develop and test one part/function at a time.

Some suggestions...

Start by writing directly to the DAC... Start with a DC voltage and if that works make a timed loop to generate a square wave in the the audio range. (There's no point in going any further until you can't get some sound out...)

If that works, modify that loop to work with your 11kHz sample-rate clock (i.e., generate a 1kHz tone with an 11kHz sample rate). If you're brave, try making a 1kHz sine wave at 11kHz, although that may require a table or an array.

Try filling a small buffer manually and read it in a loop to check if you're getting sound that way. (And I suggest you start with 12-bit signed data.)

If that doesn't work, try something like a 1Hz square wave that you can check with a multimeter or LED. (I'm assuming you don't have an oscilloscope?)

How big is your buffer and is there a chance you're running out of memory?

Have you "printed" the first few bytes of the buffer to make sure it matches the data from the WAV file?

It also would hurt to print your conversions from 16-bit signed to 12-bit unsigned to make sure they are working properly.

(You won't be able to print in real-time at 11kHz, but you should be able to test your algorithms & data.)