Is there anywhere in your process where the Role is coded to populate the Role via a Value type? It sounds like there could be an auto assignment that could be populating the Role in the process. I'd check all the Add Assignment arrows to make sure the is not some form of a Value type in there set for Roles. The only other way this would occur is if someone is choosing it. It might be worth setting up the "Is Auditable" option on the Role attribute on the Assignment object. This would at least tell you if it was someone setting it or if it was the system.
Thanks for the feedback Jamie.
I was able to resolve the issue with the workaround from the following article.
I had a filter on the attribute which was causing the issue.
Many thanks for your feedback.