Mostly when working with complex form requirements in Drupal, folk are opting to use webform_civicrm as the flexibility it provides opens up many new options.
For example in your case you could use Webform Conditionals to determine which fields show based on the choice of Membership Type (or type an existing user has if they are logged in or using a ...
I recommend taking a look at the Caldera Forms CiviCRM plugin. This will allow you to use conditions within a caldera form to show and hide fields (and make them required) based on the type of membership selected. The plugin contains multiple processors to allow you to add contacts, memberships, etc. in CiviCRM.
The plugin is available in the WordPress ...
I am not really familiar with CiviCRM and Wordpress. But one direction of looking for a solution is that use Contribution Pages for membership signup and renewals and then use a different contribution page for different membership types.
The permission you're looking for is CiviCRM: access contact reference fields. You can view the list of permissions from civicrm menu too via Administer => Users and permissions => Permissions
and then click on WordPress Access Control link displayed on the page.
This might not be the same, but the information at this link comparing drupal civicrm webform to profiles might be a similar starting point:
I found out by accident, or trial and error really, that if I select a Price Set in the 'Contribution Page' -> 'Membership Tab' then the new user is not created, but If I do NOT select a 'Price Set' and just the 'Membership Type', then the Backdrop User is created.
Now to get that to assign the correct Role is the next task.
After much frustration and subsequent soul searching, contemplating the abyss of total consumption by the digital realm, a singular epiphany presented itself to me at the gates of Valhalla. It whispered in my ear, "you're using the wrong damn profile, you dimwit!"
I had built a custom profile where I should have used the default "on behalf of organization" ...
Welcome to CiviCRM Stack Exchange alicedd!
Afaik, CiviSEPA mandate information cannot easily be made available in Profiles. CiviSEPA can be made available as a payment processor on CiviCRM Contribution pages though. CiviSEPA would then create a mandate when someone uses the page
If you want to allow constituents updating a mandate you will need to create a ...