When creating a selling plan group using sellingPlanGroupCreate there is an option to specify productVariantIds.
From all my testing, this field does not seem to do anything. If I only add one variant to a selling plan group, I can still apply selling plans from that group to variants that are not in the list of productVariantIds.
I also cannot seem to access this field from within liquid, so on storefront I can't even use it.
EDIT: I see that this field works as I expected if you don't also specify productIds
Taking a look at the original question and the edit, it looks like you are already working towards the answer. However, I still wanted to pass on a few things to aid in your search. First, a link to the guide based documentation we have for managing selling plans here. This covers some specific examples of workflows, references to related API docs, links to mutations for adding and removing both products and variants from a selling plan, as well as insights on how to join existing selling plans.
In regards to accessing this data from the storefront or via Liquid; selling plan data is currently only available to both query and mutate through the Admin API. That said, we do have a doc covering some insights and suggestions on custom-facing portals for purchase options here. Finally, we also have a community forum board for developers that is dedicated to Subscription APIs questions - right here.
Hope those resource provides a few other places to looks for answers as you build your solution - Cheers!
Shopify Developer Support