If the problem is variable sync for everything, where everything tracks each other - Monitor/headphones/speakers, Stream, and Recording - then the problem is probably in the capture card.
I had a set of 4 cheap HDMI -> USB ones, each for a different camera angle, and they were always out of sync with each other by different amounts and directions every time I turned the rig on. I didn't use their audio - took that from a physical mixing console instead - but the picture was enough to see that.
Replaced all 4 with a 4-input internal card, and the problem went away:
Acasis PCIe capture card supports multiple HD resolutions (such as 4K60Hz), bringing crystal-clear visual effects to the audience. It also supports quad HDMI or SDI simultaneous input, allowing you to flexibly adjust between different camera angles or input devices. Solve your professional video...
www.acasis.com
PCIE CAPTURE CARD AC-4HDMI (Quad HDMI-1080P60).zip AC-4SDI (Quad SDI-1080P60).zip AC-4HDMI PLUS (Quad HDMI-1080P60).zip AC-4SDI PLUS (Quad SDI-1080P60).zip AC-VS2583 (2 HDMI-4K60).zip AC-VS2584 (1HDMI+1SDI-1080P60).zip AC-VS007 (Dual HDMI-1080P60).zip AC-VS014 (2HDMI+2SDI-1080P60).zip AC-VS049...
www.acasis.com
You probably don't need 4 inputs, but I think the idea still holds. If you can, use a good quality internal card. If you can't, look at name-brand USB, not the cheap knock-offs on Amazon where the company name is perhaps literally someone bashing the keyboard:
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
www.youtube.com
If you do need multiple inputs, don't use one that is designed for security. Those only have a single converter and a quick-and-dirty switch to choose which one input that converter looks at. They're cheaper that way, since the converter is the expensive part, but it also means that you can only have one input in OBS at a time, even if the driver makes it look like multiple separate inputs.