Hola @Juanmasoa, en primer lugar no soy programador ni nada parecido. Pero intentare transmitir mis conocimientos para poder solucionarte la mayor parte del problema que tienes. No es una solucion definitiva pero te ayudara.
Para esto necesitaras un modulo de pago o un programador para que te haga a medida lo que pides. Ya te adelanto yo que no existe ningun modulo parecido y el programador depende de lo que cobre por el servicio.
Respondiendo a tus cuestiones:
1º. Añadir coste de aduanas IGIC y sobre coste por transporte. El IGIC se puede añadir como impuesto nuevo, pero no sé cómo se puede añadir el sobre coste de transporte, que es una cantidad fija.
Respuesta: Creas un transporte independiente para Canarias, aunque sea la empresa que sueles enviar, (creas de nuevo un transporte) y lo vinculas con Canarias (Activarlo solo para canarias) - Fijas el precio e intenta incluir directamente el precio (costes.. etc)
2º. Añadir provincias de Canarias como destino posible.
Respuesta: Creas un nuevo pais Islas Canarias (ESP), dentro de este bloque, pones todas las provincias que existe (Nota: desvincular de ESP peninsular aquellas provincias de las Islas Canarias)
3º. Quitar IVA para pedidos a Canarias, y añadir punto 1º.
Respuesta: Despues del punto dos que te explicado, fijas dicho pais o territorio sin impuestos. Por tanto el 21% solo aplica a ESP peninsular y no afecta a las islas canarias
4º. Añadir el campo DNI en el checkout y hacer que sea obligatorio para todos los pedidos que vayan a las Canarias.
Respuesta: BackOffice > Clientes > Direcciones > Establecer campos requeridos para esta seccion > Nombre del campo > VAT Number / CIF
Si quieres ordenar el formato de las direcciones para temas de facturas:
BackOffice > Internacional > Localizaciones > Paises > Seleccionas Islas Canarias (Esp) Territorio creado a partir del punto 2 que te he comentado > Formato de direccion:
Necesita numero de identificacion fiscal: Si
Mi ejemplo de formato de direccion: Cuadro
dni
company
firstname
lastname
Country:name
address1
postcode
State:name
city
phone
5.º Generar una factura.
Respuesta: Dependiendo de como configures los estados del pedido, se crea la factura o no. Puedes crear un estado especificamente para crear una factura.
Espero haberte ayudado en cierta medida.
Un saludo y suerte.