1)I'd bring him back close & teach left back & right back (different hands).
2) I'd have someone watch me to make sure I'm not doing crap or moving other arms- legs when the dog is watching before I cast back one way or the other. Just to make sure I'm not confusing the dog before I give backs from a distance.
3) I'd teach a literal back, which is basically put one hand up in front of your chest from your neutral position (verbal Back), I don't care which way the dog turns Just that he high-tails it straight back. A very nice cast to have in one's arsenal
As to your problem I'd bet on something be up with #2, that your body is inadvertently doing something, most likely your not in a neutral position when you cast right-back, thus the dog is seeing the right arm move. He sees thus takes a right cast before you complete the back cast movement. Your sending him mixed signals.
Neutral position: Have both hand placed in front of your chest, (elbows in/your a post with nothing on either side to direct-distract the dog). Be in position before you sit the dog. Sit the dog (make him wait). show him the hand (in front of your chest/your still a post) for the side your going to cast (make him wait-No auto casting-no movement you haven't given him a cast, just priming him on direction so he's not allowed to move) extend the hand and arm, straight up-45-out for the cast (no circular-side movement of the arm/you go from a post to a sign post showing one single non-confusing direction). See if your dog doesn't start taking much better casts.