Occasional live sound engineer here.
Normally, multiple mics in a live setting are both far enough apart and close enough together that you don't get that sound. The speed of sound between them is too fast to perceive as you describe (caused by two copies of the same thing with different delays for each), and the energy spreads out enough that the later copy is soft enough to just get lost anyway, compared to the original. Yes, you can hear the entire band from any given mic, with different parts emphasized of course, but everything else is low enough physically that it doesn't really much difference in the mix.
Sometimes if we have a bunch of mics close to each other, they can interfere to create a sort of "hollow" sound, which is mostly fixed by poking the invert button on the sound board (physical or DAW) for some of them but not all (sounds exactly the same in isolation, but messes with the way that they interfere with each other), but that's probably not what you're describing.
What's probably happening in your case is that you send the mic to OBS's Monitor (maybe you run some headphones from there, like it's meant to do), and you send that Monitor to the same physical device that you also use for the Desktop Audio source (Settings -> Audio) or an Audio Output Capture source (in a scene). The pickup point (tap point) for those sources is AFTER everything's mixed together and ready to send out, and so it includes OBS's own Monitor. Then you send that source back to the Monitor, and the source picks it up again, etc.
That's what we call a "feedback loop". It's purely electronic in this case (and includes a delay that comes from your computer's audio system), whereas in live work it often involves acoustics (sound from a speaker gets into a mic, gets amplified and goes to that same speaker...), but it's the same thing. And the solution is the same too: break the loop, somewhere. Doesn't matter where.
In live work, you either turn that mic completely off in that speaker, or if you can't do that, turn the *control* down enough that the total loop is a net loss and so it dies away instead of growing. You DON'T sing or talk softer or pull the mic away from the source, because that forces the control *up* to get the same useful result! So if you're using a sound system and it rings or screeches, *yell directly into the mic* so that you force the operator's control down. It's the *control* being too high that causes the problem, not the volume in the air or wire.
In your case, you might:
- Not Monitor the problem source. Depending on what you're doing, this may or may not be an option.
- Send the Monitor to a different device. You might have to add one to make this work.
- Set the Desktop Audio to Disabled, if you don't use it anyway.
- Set the Desktop Audio and/or Audio Output Capture source to use a different device, and set the app(s) that you want to capture to also use that new device. Like moving the Monitor, you might have to add one to make this work, but you have an additional option now, to install a virtual one with no hardware at all.