When cancelled currently stock on a non-processed order automatically returns to the same location it came from.
However, in the situation where you are cancelling the order because the stock is not available physically, you do not want the system to return the qty back to its sale location.
Just with like processed orders, there should be an option to choose the stock action taken at the point of cancellation to prevent this.
You mean for example if the Linnworks inventory shows 1 in stock, 1 on order, 0 available. As soon as you cancel the order, the 1 product that Linnworks thinks is in stock will become available. The only way to prevent this is to fix the stock level. The 1 in stock is wrong, and if you change it to 0 you will fix the incorrect stock level once and for all.
Is this what you are trying to achieve?