Bueno, me respondo a mi mismo por si a alguien le puede venir bien. He hecho pruebas con otras plantilla y ocurre lo mismo, por lo que debe ser un bug de woocommerce.
La única solución que he encontrado es poner los precios sin impuestos en el carrito y checkout, ya que lo que ocurría es que le suma al descuento real la diferencia del IVA antes y después de aplicar el descuento, y por eso lo descuadra. De esta otra manera todo cuadra bien.
Saludos