I am still hoping that a linux port will be possible.
I have to say I admire your interest and dedication to solving the problems. 
I just don't think they'll be that easy to solve, unfortunately. 
Yes, I am very interested in this project and I also really want to play/enjoy the game. I am not really looking forward to booting my older Windows laptop just to play this game. I will however buy the Wii version instead (together with a Wii, because I was already planning to buy one) when Aquaria is available there and if no Linux version is available by then.
But I don't want to think about that. If possible, I want to be able to play the game on Linux.
Too bad that it sounds like you're giving up, though. I can't blame you. The more I learn about the way the game is written, the better I understand the difficulty of porting it.
Filenames are weird. We have a lot of content, divided into different sections. Each section does things slightly differently. Some filenames are loaded out of scripts, some from txt files with lists in them, etc. Not all the filenames are in code. Some get converted to various cases when loaded in so that they can be easily compared.
Its not something that could be easily solved in one step.
Hmm, still sounds doable

I actually have a better idea for a script. We can just grab all filenames in your game source/content directory (+ its subdirectories) and then execute sed commands on all files to automatically replace incorrectly cased references to those files by the actual filenames. A "quick and dirty" script to accomplish that can be written in a short time. It should fix casing in source files, script files and most text files. It will only fail for files that reference to other files in a wrong way (e.g. "fi le 1. tx t" instead of "file1.txt")
And is there a problem with the conversion to various cases? If you load in names from a text file and want to easily compare them by changing the case to lower or upper case, that should only be temporary for the check, otherwise I can indeed see the possible complications. And of course if you are checking the uppercase of a loaded filename to "FILE1.TXT" and the script changed "FILE1.TXT" to read "file1.txt", you'll run into other problems. The more I think about it, the less I think my script would be a solution. It could potentially make your code even worse if it runs into those cases.

But still. I think it's not as big an issue as the audio library. You can take your time sorting out the filenames after you have successfully changed/subclassed your SoundManager. (Because to test the SoundManager I suppose you have created a small test application that tries out the needed combinations of the audio (e.g. multiple audio streams + voice over))
IrrKlang looks like it handles allocation of sounds itself, i.e. doesn't let you load and unload sounds when you want to. I'm not 100% sure of this yet, but from skimming the docs that's what it seems like. What we like to do is load a directory of cached sounds, and load/unload local sounds per level to try an minimize the impact on memory.
I spoke to some IrrLicht users (IrrKlang was officially created for the IrrLicht 3D engine) through IRC and I got this answer:
[01:02] <profoX`> Hello everyone! A friend of mine has this problem, can you guys give more information? --> IrrKlang looks like it handles allocation of sounds itself, i.e. doesn't let you load and unload sounds when you want to. I'm not 100% sure of this yet, but from skimming the docs that's what it seems like. What we like to do is load a directory of cached sounds, and load/unload local sounds per level to try an minimize the impact on memory.
[01:03] <Halan> of course oyuve to load it
[01:03] <Halan> but you can also stream from hd or ram
[01:05] <profoX`> I do know that he wants to use streams from HD or ram for background music. I think that my friend thinks that all sounds have to be loaded at one particular time and can't be unloaded/other sounds loaded when a new level commences
[01:21] <Halan> no
[01:21] <Halan> you just load it via a funciton
[01:21] <Halan> in the engine
[01:21] <Halan> and then do sound->drop()
[01:21] <Halan> and the memory is free again
I hope that cleared some things up. And I also hope that a Linux port is still possible

Two thumbs up if you are able to create one. And, well, still one thumb up if you can't, because I will enjoy the game on the Wii if it will become available there. And if it won't, I'll *sigh* just boot up my old Windows laptop

But that's really not what I'm after. (Plus it's not the newest hardware on that laptop)