A little digging shows that setting the user title automatically per group doesn’t really work when you’ve got multiple groups fighting for “Primary” status. For example, my title reads Director, but click it and you get the Members group.
Therefore, I suggest adding an extra bit of code in MS2.1 that sets “Primary Group” with a definable hierarchy of primacy (eg. Director > Keyholder > Member)
The relevant API call should go like:
PUT d= primary_group_id=[group_id] https://discourse.southlondonmakerspace.org/admin/users/[user_id]/primary_group.json
(untested. it might accept username as well as id)