Elimina todas porque tienes más de un registro donde se cumplen, por lo que la eliminación abarca a todas. Pero un INSERT es individual. SIEMPRE.
Si tienes que ingresar más de un registro, debes entonces construir o un INSERT múltiple, o hacer múltiples INSERTs.
En el primer caso es un
Código MySQL:
Ver originalINSERT INTO `area_documento`(`Cod.Doc`,`Cod.Area`) VALUES('$Codigo','$val'), ('$Codigo','$val'), ('$Codigo','$val'), ('$Codigo','$val');
donde cada conjunto de VALUES se correspondería a un par a insertar. Obviamente se tiene que construir programáticamente, o insertarás valores iguales en todos los caso.
El otro es similar. Tienes que iterar una a una las inserciones, programáticamente, y ejecutar una a una. La diferencia es de performance: Con un INSERT múltiple puedes mandar al buffer un millar de valores que se ejecutan masivamente, mientras que en el segundo las inserciones se ejecutan de a una.