There is no pre-set limit to the number of processes that can bind to data; nor is there a pre-set limit to the complexity of the underlying data of the tied variables. The amount of data that can be shared within a single bound variable is limited by the system's maximum size for a shared memory segment (the exact value is system-dependent).
From IPC::Shareable. So it seems you hit an OS limit.
You think you want *unlimited* shared memory segments. That can't happen. Unless you specify a reasonable upper-bound and then try negotiating that with the OS. Or modify the logic of your program. Multiple shared segments to store a single string perhaps?