Were you getting any "stuck beacon" error messages in your system log? I've seen that at first with both Atheros-based cards I've tried (5212 and 5416 chipsets). Changing channels or removing the antennas sometimes would make it stop. It eventually seemed to go away on its own in both cases after I had already tried changing channels, rebooting, etc., and I was then able to use the channel I wanted without seeing the error. They may require some kind of calibration period before they work right on the ath driver.
I've also seen good results from a card I have that is based on the Marvell 88W8363 (mwl driver in FreeBSD), but with no initial issues either, unlike the Atheros cards. It does require at least FreeBSD 8, however; which means it won't work in pfSense 1.2.3, only 2.0. The card supports 802.11n, but the mwl driver doesn't seem to support 802.11n rates yet (only up to 54mbps). Like ath, the mwl driver also supports virtual access points on 2.0 (new in FreeBSD 8 ), but unfortunately the mwl driver is currently missing something that is needed for the additional access points to actually be usable by wireless clients.