Hello,
The "single submission" algorithm is based on the HikaShop invoice order statuses setting.
if($this->params->get('single_submission', 0) && in_array($confirmed_status, $invoice_statuses) && !empty($order->old) && !empty($order->old->order_invoice_id))
return true;
So you have to check that you right have statuses for the "invoice" and that the status "confirmed" is right in that list.
Thus, the first time the order will be confirmed (so the order do not have an "order_invoice_id") the submission will be made.
I don't see any code which allow the plugin to record a cancelled order, nor code to handle that specific order status to send a negative value.
And due to the "single submission" setting, I don't even know how it could be possible to not submit several time a cancelled order... (but I first don't understand how a cancel order can be submitted)
So I think we would need more details about your order statuses configuration.
Regards,