You really need to set the answer value in the application that you are using to answer the telephone calls. Many applications will send an AT&F as part of the initialization of the modem. If that happens, then your S0 register will be reset to 0. If the application just sends an ATZ then you will be OK if you save the register to NVRAM using the AT&W0 (or &W) command.
Most applications will have an initialization string that can be user defined. If you simply insert S0=6 in that string, it should set auto answer to the 6th ring.
pansophic