of the ones you mentioned, 16F628 would be your best bet, although overall I'd recommend the 16F88 more if you were able to get it. But the 628 isn't bad.
I can't really speak from experience with parallel port programmers, but nigel goodwin has a design available that works with his programming software...
www.winpicprog.co.uk
as for driving the speaker, well I would suggest using a buffer transistor to drive the speaker, rather than straight from the PIC... a piezo would be fine right from the PIC, but a speaker could be a bit too much of a load.
As for compiler, well I really don't like BASIC myself but I can see how it's useful for beginners with PICs. I would suggest you look at C compilers (especially BoostC) in the future, if you know C at all that is.
I wouldn't wire the switches as analog inputs, given that you want a nice round number like 16 or 32 inputs, arranging them in a matrix arrangement is the way to go... like this:
http://www.rentron.com/serkey16.htm
then you only deal with digital I/O, no analog, and you can still fit it in a reasonable number of I/O.