I'm honestly surprised by this thread as well- Brad's way ahead of me in so many things that I'm puzzled. Maybe I can help. Try this:
http://www.mega-nerd.com/SRC/This algorithm is present in the open source tool 'Audacity'. It's based on an algorithm by Julius O. Smith using (insert geek block HERE) windowed sinc interpolation at an arbitrary quality level- you trade off between speed and quality.
What this means is, I've fooled with a lot of poorer SRC and done things like tested them with a sine sweep from 10K to 26K (at 48K sampling rate) and converted it to 44.1K. You get really LOUD birdies and artifacts if you do that. Normal software SRC is appalling under those circumstances, or if you have particularly nasty abrasive program material as I've sometimes had. The windowed sinc SRC I mentioned above successfully converts the sweep-to-above-20K so well that you still (I still...) can't hear the sine as it goes above about 15K. Any other software SRC (maybe not Barbabatch) and you totally hear lots of loud artifacts the whole time.
The quality settings work so that at low quality you still don't get artifacts, but it starts rolling off at 14-16K. At the very highest quality you can get arbitrarily close to perfect passband up to the Nyquist frequency, and still perfect rejection after that- absolutely no audible artifacts.
The concept is called an emulated conversion of the original data to analogue and then resampling at the new sample rate- which is of course what you're doing now. If this sound library is helpful to you, please let me know! I'd like to think I was able to come up with something to help you out, and I know this algorithm performs fantastically. I'd love to see other software incorporating it (it would have to be open source to incorporate this 'Secret Rabbit Code' library, but again there is already usable OSS software that does, like Audacity)
Good luck! I suspect it should be possible to do this operation in the digital domain as well or better than in analog, because you're not supposed to be adding any color- it's all about rejecting the artifacts, and it's all about finding ways to throw more computational power at the problem. Windowed sinc has that capability, and should solve your problem.