Profile2 restrict main profile
One solution would be to create two roles, one for A and one for B - then you can restrict access to different profiles in permissions under admin/people/permissions .

You could use Rules to assign the appropriate role based on selections during registration, and use the 'After Saving a new user account' trigger.