Hi peter,
a bbpress role is essentially still a wp role, a custom wp role. Using a plugin you can assign it wordpress capabilties. WordPress itself doesn’t care about the order.
A better solution might be to use the ‘roles’ field, not the ‘first role’. ‘Roles’ will show all the roles that a user has and you can then include or exclude by those ‘roles’.
The ‘first role’ is a dummy field created by the plugin and is literally what the db has as the first element in the capabilities usermeta.
It is there for historical compatibility. Somehow in your wp setup the person probably was assigned a bb press role before being assigned a wp role. If you really do want to use the first role you could try via phpmyadmin copying the usermeta array value for a similar user who has the wp role first then pasting that into the user who didnt get a wp role assigned. Do this carefully, make sure you have a backup.
For the future you then need to ensure that the way you have setup your plugins or converted your users, they will have one of the subset of roles that you regard as ‘wp’ as the fso called ‘first role’.
In my opinion, it would be better to not rely on the order the roles are stpred in the db and set up the role definitions in a way that suits your functionality and reporting requirements.