I have tried creating a reference tag of the system tag out of curiosity to see if i could bring the username over into my default tag list but it then says path not found?
You are trying to use UI information in a global context. Tags don't have a user. They exist and execute whether anybody is connected or not, and regardless of how many are connected. You simply cannot use UI-specific information in an expression tag.
Use a root container custom property (boolean), with your ``hasRole()` expression. That runs in the client, and will be specific to that client. Use the resulting boolean in the components that need to change based on the role.
You can also use Vision Client Tags. These run in the client, too, and are client-specific.