Aggregate multisite RSS and restrict certain content

The bottom line is that you’ll need to have all the post content in one place in order to be able to form it into a single feed. (Querying efficiently across 18 different post tables is more or less impossible.) My go-to method is to use the Sitewide Tags plugin https://wordpress.org/extend/plugins/wordpress-mu-sitewide-tags/, which allows you to designate a “tags” blog, where a copy of every post on your network will be saved.

You could set your main site as the “tags” blog, but it’ll mean that you have to rig something up to keep the duplicated content out of your main feeds. (Such as a filter on guid, which the SWT plugin uses to point back to the original content.) Alternatively, you could just set up a separate “storage” blog for this purpose, and then point your RSS links to it (or switch_to_blog() in the context of your primary site).