Возможно, ошибка в этих строках:
transform.localRotation = Quaternion.Euler(180, 0, -rotZ);
transform.localRotation = Quaternion.Euler(180, 180, -rotZ);
дело в том, что тело отражается в строке
transform.localScale = movex;
из-за чего, второй раз отражаются и руки.