Preface the names with #0 and they’ll be assigned a unique name on loading e.g. [send/receive #0foo] will become [send/receive 369foo] or [send/receive 235foo] etc. with a different number in each new instance,
and if you use #1foo (with an argument for the bpatcher), that bpatcher will only communicate with itself (as with #0) but you can access the value from the parent patch. so if the argument is 74, you’ll have [send 74foo] and [receive 74foo], which can be talked to from the outside if needed. It can also help you keep [pattrstorage] sorted out, if you’re using that.
But the #0 advice is ideal for when you just want to isolate each one and don’t need inter-bpatcher communication, or from the top level patch.