Just like we will never install Linux on any unbeknownst third party's PC, we would also never do a direct distro upgrade of a working Debian machine.
Instead, we would create a new partition (30GB) and copy the currently running (working) partition to this new partition with a simple rsync command such as follows:
sudo rsync -a --progress --exclude-from=/extra/rsync.create.txt / /media/rsync/Debian12
where /extra is our data partition and /media/rsync/Debian12 is the mount point of the new/target partition. An example of the exclude file (rsync.create.txt) is shown below:
/proc/*
/sys/*
/dev/*
/mnt/*/*
/media/*
/extra/*
/vbox/*
/tmp/*
/run/*
/lost+found/*
/home/*/.cache/google-chrome/*
/var/log/journal/*
After the copying is complete, we have to edit the /etc/fstab and the /boot/grub/grub.cfg files to reflect the new UUID, then chroot into the new partition and run update-grub there. Finally, exit chroot, unmount the new partition, and run update-grub again on the currently running machine.
After rebooting to the new partition, do the usual Bullseye-to-Bkworm upgrade there. Since disk space is cheap, I would keep Bullseye partition for at least a while (for us, almost forever even though we never use it now). Or you can continue to use Bullseye, but occasionally boot into bkworm and give yourself an opportunity to make some fuss about it.