Mira la funcion fgets es para trabajar con archivos de texto.
Cuando el archivo a leer tiene una estructura del tipo que mostras te conviene guardarlo y leerlo como binario.
Debrías leer sobre las funciones
ssize_t fread(void *p, size_t tamaño, size_t bloques, FILE *);
ssize_t fwrite(void *p, size_t, size_t, FILE *);
Donde tamaño debería ser = sizeof(struct clientes);
y bloques debería tomar como valor la cantidad de bloques que querés leer de una vez.
No te olvides de tener memoria reservada en p, así evitas problemas.