Tryton is designed to not prevent to encode movement even if they generate negative quantity because such recording should be done only when the user has physically moved the product.
But there are the shipments that exists as higher level to manage stock moves and they care about the availability of the quantities with the assignation process.
The stock_supply module exists to manage the supply of the stock.
Here I think the problem rely in the GNU Health wizard that creates the moves. It seems to not caring about the quantities (I do not know the usage and if it is valid or not). You should report the problem there: GNU Health - Summary [Savannah]