He echado un vistazo a una versión antigua del módulo que tengo por aquí, y en principio parece que lo que usa para identificar las operaciones es el número del carrito ($cart->id):
// Create transaction $cecabank_client->setFormHiddens(array( 'Num_operacion' => $cart->id, 'Descripcion' => printf( '%09d - %s %s', $cart->id, $customer->firstname, Tools::ucfirst(Tools::strtolower($customer->lastname)) ), 'Importe' => $amount, 'URL_OK' => $url['return'], 'URL_NOK' => $url['cancel'], 'datos_acs_20' => urlencode( json_encode( $acs ) ) ));
Revisa eso, que no tengas carritos con números repetidos. Incluso si estás en pruebas, elimina los carritos abandonados, para evitar errores.
Otra cosa: Puede ser un problema de cookies. Borra todas las cookies de la página en tu navegador, o inténtalo desde otro navegador o desde una ventana privada, es posible que así te deje.