@markstos Not sure I follow what you're trying to do here, i read this as "I've written a playbook that I run once and it targets every device i have, I then configure PROD using one role, then TEST using a different role and then QA using a third role"
If that's a correct analysis, then I don't think you're using the tool as it's intended.
The way I use it is, in my inventory file I have Ansible groups for PROD, TEST and QA and I have group_var files for each of these groups.
I have a single playbook with tasks or roles for all the components I wish to configure.
When I execute the playbook, it checks to see which group the host is in and loads the appropriate variables. You can also use this group membership to include or exclude tasks as appropriate.
If you share your playbook, I could perhaps help further or I can thoroughly recommend @geerlingguy book "Ansible for DevOps" and his accompanying YouTube series.