For anyone who is having similar problems, I managed to get my wireless working finally. I used the official Broadcom driver. You can get it here:
http://www.broadcom.com/support/802.11/linux_sta.php
It's suppose to work with BCM4311, BCM4312, BCM4321, and BCM4322. But I can only vouch for 4312. And someone discusses their experience with it here:
http://jomcode.com/fadhil/?p=59
I had tried this driver earlier (I think I commeted about it in a previous post), but had gotten several compile errors of this form:
It was very easy to fix the source code so that everything works. I think the problem is there's a header file somewhere that is used but is out of date. But I easily fixed the problem by editing wl_iw.c. On each line where there is an error, I just added as a first argument in the function call the variable 'info'. I did this with each such error, and was able to compile the code.
Thanks everyone for all the help!