I think I've more or less figured things out for myself. I would appreciate any input if there's a better or easier way to do this.
I started with a fresh install of pfSense. I disabled all packet filtering because I don't want it doing any of that. I setup the captive portal following Nexudus's instructions to work with their system. I bridged the WAN and LAN ports. I then assigned the bridge to its own interface and assigned it an IP address. Then, on the client machine, I made the bridge IP address the default gateway.
That seems to do the trick. When I try to browse the Internet I get stopped by the capture portal. I can authenticate, then I'm online just like I'm supposed to be.
Now I just have to get this configured to work with the Watchguard. I've got to figure out how to block Internet access that isn't filtered through the capture portal because someone out there will be clever enough to manually set their default gateway to bypass the pfSense box.
If there's a better approach to all of this please let me know, but I think this will work.