I know this is an old post but I am in a similar situation. However, the suggestion to use Frontend Roles does not seem to apply.
My app also has 3 different types of Frontend users: Users, Employers, and Staff.
I am currently using RainLab.User groups to differentiate between the three.
My dilemma is that each type of user shares some basic information: First and last name, email address, and password. However, beyond that, much of the model data is different.
For instance, my employers need a phone number, company, title, and address associated with them.
My staff members need a phone number, company and title as well.
There are additional fields and information for the different groups but I don't think its necessary to get into the rest of the details.
What I did was create my own models for Employer and StaffMember that basically piggy backs on the default User model in RainLab.User, but I have changed the config_fields and config_form files to fit my needs.
However, all of my data is stored in the one users table created by RainLab user. I'm concerned this may not be the best practice.
The reason I approached it this way is that I wanted to maintain/keep the basic account, session, and other functions of the RainLab.User plugin.
Not sure if this clarifies the question here or even presents my problem in an understandable way, but I happened to find this post and wanted to chime in.
Nevertheless, OctoberCMS and the community have been a joy to work with and I learn something new about it every day.