It's not that OBS doesn't work with multiple GPUs, it's the PC architecture that's not designed to work efficiently the way OBS needs.
If you have 2 GPUs, not with SLI but just 2 GPUs, and one monitor connected to each, everything displayed on a monitor is rendered by its corresponding GPU. This is a good setup for load balancing and distribute GPU rendering load to both GPUs. If you don't use OBS.
Now you add OBS. OBS works this way: It has a hidden invisible frame buffer on one GPU, where it composites all sources and renders the outgoing video. All filters also run on the GPU, because they are implemented as shaders. This is a very efficient setup, because on a single GPU machine, OBS captures the game's or app's frame buffer and directly use it on the same GPU and memory for compositing. Just pointers to memory are handled, and very little memory is moved around, so it's very efficient.
If you have 2 GPUs, OBS has to decide and choose one GPU where it keeps its hidden frame buffer. If you want to capture stuff from the other monitor, OBS has to copy the frame buffer data from the other GPU through the pci-express bus to the GPU OBS is running on to include it in the composited video. This copying is a very resource intensive procedure and creates a resource bottleneck, because the presence of 2 GPUs limit the pci-express bandwidth to x8 speed instead of x16 speed, if only a single GPU card is physically present.
Personally, I don't have 2 GPUs, so I'm unable to check, but if OBS doesn't offer to display capture a monitor for you that is connected to "the other" GPU, it seems to me that OBS is considering this capturing so resource intensive that it is impossible to accomplish, so it doesn't even offer it.
To avoid this but keep both GPUs, you can limit all OBS captures to only one monitor. Capture stuff only from one monitor and make sure OBS is running on that GPU. If OBS is starting on the wrong GPU, try to use Windows settings to assign OBS to one specific GPU. Which GPU OBS is using can be seen in the OBS logfile, and you assign the GPU with Windows Settings->System->Display->Graphics Settings.
As I said, I don't have multple GPUs, so I'm unable to verify, but I assume you can run OBS on one GPU (have its frame buffer on one GPU) but have the OBS window on a monitor connected to the other GPU. So you can still benefit from your second monitor for pure display purposes. Just move OBS to the monitor you want it on - after assigning the correct GPU to OBS and restarting OBS. It's only an idea that might work or not.
On which GPU OBS is running and which GPU's resources are used by OBS can be seen with Windows task manager. There is a column where the GPU number is displayed.