Weird behavior of pwm controlled servo motor?
Try eliminating the useless for loop and add delay_ms(); after OC2RS = 658;

 while(1)
   {
     OC2RS = 250; // to the left
     delay_ms(200);
     OC2RS = 658; // to the right
     delay_ms(200);
   }


After OC2RS switches to 658, without the delay, it will switch back to 250 almost immediately. Thus, there will be no observable effect at all.