Have you tried
cRARk? I never used it myself, but it popped up after a quick lookup on google. On the FAQ, it says it is limited to 28 characters. He also states "you don't need the source. Take UnRAR's sources and optimize the SetCryptKeys() function, next contact me.", so you could mess with that, I guess.
You can get the tarball containing source code for UnRAR
here.
By the way, it still sounds pretty undoable. 29 possible states for 16-23 characters, 7 of which you know for sure, 1 has 3 possible states, 8-15 characters still on the 29 possible states situation. So, I might be doing the wrong maths, most likely, but...
P here would be the number of possibilities you have for the password, with the given info. That's a lot, and at 100 tries/second, it'd take you(and again, I might be doing the wrong maths) just shy of 476 years to finish testing the possibilities for 16-digit passwords.
I don't think you can work with 100 tries/second, and I'm sorry I can't give you any more advice. I'm new to this. :/