There is a hidden gem in the github bug report that has a workaround for lirc not being able to send AND receive. You can revert back to a previous kernel (4.14.y), but still be running the newer Bullseye OS.
https://github.com/raspberrypi/linux/issues/2993#issuecomment-497420593
This solved the lirc problem and I was able to continue to use the new OS with new python version needed for another project. There may be a compromise that I am unaware of, but for my use case it was a win-win. I'm running a very simple, lite, headless system that provides a web server, bluetooth, lirc and a serial port. If you are running a more complex configuration (desktop, audio, video, etc), I'd recommend you back up your system before trying this option.
To downgrade your kernel to 4.14.y run:
sudo rpi-update c30ae2bb624f7fd60fcbedff950cc4361c8d2aec
In /boot/config.txt you'll need to use the old Stretch format overlay (with your pin assignments), ie:
dtoverlay=lirc-rpi,gpio_in_pin=17,gpio_out_pin=22
and in /etc/lirc_options.conf the device line is:
...
device = /dev/lirc0
...