Hello! Perhaps one way you can do is to create subgroups of those 3 main groups. For example, you can have
Group1.1, Group1.2, Group1.3
Group2.1, Group2.2, Group2.3
Group3.1, Group3.2, Group3.3
(functionally they are 9 parallel groups, but semantically there are two levels)
Then, between the main groups, you can keep the C vs N vs A distinction. But within the groups (e.g., for Group1.1-Group1.3), you can create more blocks that semi-manually counterbalance the orders of those test blocks. For example, Groups 1.x will have the order A B C, Group 2.x B A C, and then Group 3.x C A B. That way you'll achieve between group counterbalance as well.
Let us know if this works!
Group1.1, Group1.2, Group1.3
Group2.1, Group2.2, Group2.3
Group3.1, Group3.2, Group3.3
(functionally they are 9 parallel groups, but semantically there are two levels)
Then, between the main groups, you can keep the C vs N vs A distinction. But within the groups (e.g., for Group1.1-Group1.3), you can create more blocks that semi-manually counterbalance the orders of those test blocks. For example, Groups 1.x will have the order A B C, Group 2.x B A C, and then Group 3.x C A B. That way you'll achieve between group counterbalance as well.
Let us know if this works!