Hi,
I had a Respeaker HAT working fine on my Pi, my repo was here GitHub - richbayliss/resin-seeed-voicecard: A simple example of using the Seeed ReSpeaker voicecard with Resin.io but it’s out of date now. The issue you’re facing here looks more like a problem with the modules being in the wrong place. I would try running the container and inspecting the filesystem to see where the Dockerfile put them. If they’re missing, that’s your problem, and if they’re in the wrong place then you can adapt your Dockerfile appropriately.
if anyone has successfully enabled an i2s device, or if this is outside the possibility of balenaOS today.
In answer to your original question, this is doable and possible as a container but you just need to consider the facts of container-based processes and work with/around those. You seem to be on the right track here though