Just a couple of pointers for anyone with this issue: in general, the Bluetooth standard (as of version 4 or so) provides 2 codecs for use with headphones/headsets: SBC for high quality audio + high latency + no microphone, or SCO for lower audio quality + microphone + low latency. The point is that they don't provide for high audio quality + microphone at the same time, so at any given moment you have to choose one of the combinations.
MacOS and iOS tend to switch to SBC when possible, meaning when the headset's microphone is not in use. So the first thing to try to get high quality audio is to switch to the computer's microphone in Sound preferences. And viceversa, if what you want is to use the microphone even if that means lower audio quality, select the headset's microphone in the Sound input prefs. Applications who use audio input (Zoom, QuickTime Player during recording) will usually do this for you.
Latency is usually only important when doing interactive things, like playing a game or video calling. For plain video watching and such, the OS compensates the audio delay so one won't notice, so SBC is OK. But when low latency or microphone are needed, SBC is not an option.
If one cares for high quality audio + low latency, one usually needs to look into gear with specialist BT audio codecs: aptX and its variants are the most heard of. This is a bit of a rabbit hole so I won't go into that here.
For those knowing what they're doing, one can get a bit finer control of what the audio is doing in macOS with the included app "Audio MIDI Setup". Also, Bluetooth Explorer (one of the "additional tools for XCode") allows one to set some deeper details of audio/BT, like disabling/forcing codecs.