Pulse Proportion Modulation seems to be nothing more than a word game by the makers of Arduino.
It is the pulse width of the signal that controls the servo's position. It is not the proportion of that signal to the 20 mS refresh rate that controls position. Albeit, if you mess with the refresh rate (i.e., the proportion of on time), you can change the position slightly. Nevertheless, that is not the means used for control.
Every servo manufacturer calls it pulse width, and that is the term I used. Even the illustration in the Arduino paper shows pulse width, not the proportion of that width to the total period.
Of course, there can be confusion between terms that are often used in referring to PWM control of DC motors, such as duty cycle, which do not apply to the PWM used for servo control. Ironically, if we want to play word games, I think that "PWM" used for motor control may arguably be called Pulse Proportion Modulation more accurately.
I am worried about getting too off topic here and would to stick to the matter of helping Ritesh find a simple way to control that ESC with his microcontroller. I think that producing the appropriate PWM signal will probably lead to success faster than trying to work through the I2C protocol. At least there are lots of examples to work from.
John
Here's a link to a worked example using the 16F877A:
https://www.electro-tech-online.com/custompdfs/2013/06/servo_controller.pdf