can virtual library be used with PID controller

Have you tried using the standard Servo library rather than ServoTimer2? It will use the 16bit Timer 1 rather than the 8bit timer 2. I don't know if this will make a difference or not but it could be worth a try (and it does not require changing your code much so easy to test - change servo.write() to servo.writeMicroseconds()).

   myservo1.write(esc_1);
   myservo2.write(0);
   myservo3.write(0);
   myservo4.write(esc_4);

What is this? Looks very strange to me.