Una solución sencilla es colocar una demora de menor valor, por ejemplo 100ms y utilizar una variable para contar la cantidad de veces, entonces cuando este llegue a 200 (20seg) guardas en la memoria, pero tui bucle se repite cada 100ms.
Lo de cambiar los pines de I2C, si estas usando el hardware del PIC no puedes cambiar nada, pero si lo estas haciendo por software puedes elegir lo que quieras.