I'm unable to understand 3 and 5 fully, might be a language barrier situation. But I'll give it a shot anyway, as it seems I have a situation that is somewhat similar.
Pretty simple to solve, actually. Add an extra column to (most of) your tables, which indicate what realm (it could be named kingdom, customerspace, section, or whatever you find simple to understand - I named it realm for me) that row exists in. Then use that when selecting. That's basically it.
Example:
You have an organization with id 100, let's say it's a customer to you. In all their rows in the database, set realm_id to 100. When they log in and use your system, always have this in the selects, and when the create and update, make sure it gets set.
Let's move on to organization 101. Same thing, but with realm_id 101, which means they never see anything related to 100. And when they create their own organizations, the realm_id will be 101, so only they can't see their own organizations.