Si son pocos usuarios (independientemente de la cantidad de datos, no vas a tener muchos problemas con los bloqueos, salvo que todos esos pocos usuarios accedan y modifiquen los mismos registros y con alta concurrencia.
Todas las tablas debes abrirlas en modo compartido (shared). SET EXCLUSIVE OFF, etc.
Si usas INSERT (de SQL) para agregar datos, tienes más del doble de velocidad de agregado que usando la dupla APPEND
BLANK + REPLACE (esto último debería prohibirse) y la probabilidad de conflicto en la red se reduciría muchisimo.
Recuerda que en VFP 9, puedes con una única sentencia INSERT de SQL, insertar todos los registros de un CURSOR u otro SELECT.
Para los UPDATE y DELETE (ambos de SQL) debes usar siempre la clave primaria en la clausula WHERE
Solo se admite acceder con otras condiciones en casos muy particulares y debidamente testeados, definidos y documentados.
Los select's, para acceder a un registro, utiliza también en el WHERE la clave primaria.
Si debes procesar varios registros para visualizar, cálculos, etc. Crea un cursor con un SELECT y ya en él establece los filtros correspondientes (también en la clausula WHERE) e incluye, aunque no muestres, las respectivas claves primarias de los registros accedidos (de cada una de las tablas involucradas en la consulta).
De esa manera, si desde la grilla o lista el usuario elije algún registro completo de la/s tabla/s, tienes como acceder al registro completo con la clave primaria incluida.
Con los cursores creados en memoria si puedes usar sin problemas las sentencias tradicionales de Fox como SCAN para recorrer.
No tengas miedo en usar SQL para tablas nativas, es más, la conocida técnica rushmore de fox, cuando se acceden más de una tabla, solo es aplicable usando SQL.
Otro ítem interesante a tener en cuenta. Usando SQL, no tienes que preocuparte de abrir o cerrar las tablas (solo la base de datos) y tampoco de activar/desactivar los indices, si los datos los necesitas ordenados, directamente lo indicas la sentencia SELECT con los que los recuperas.
Es más, ni siquiera debes preocuparte de que indices crear, más allá de los correspondientes a las claves primarias y las foráneas correspondientes.
Como puedes ver, mi propuesta implica menor cantidad de codificación, y codificación más simple, no indicas como, solo lo que quieres hacer.
Debes indicar en el archivo config.fpw que todos los archivos de trabajo son locales (ver ayuda para detalle).
Y si a futuro, necesitas migrar a un SGBD, solo encapsulas los comandos SQL y tienes tu código casi en un 100% migrado.
Luego con más tiempo, si interesa, puedo agregar algunos micro ejemplos de codificación