Well, if you're capable of stepping through the database, totals are in table tb_order; lines (one product * quantity) are in table tb_order_details. Yes, there's some redundant information. Price with tax, price without tax and price ... which is the one which was shown to the customer and matches one of the other two. Also a couple of values which are recorded for (I assume) statistics. One can look up these tables to see whether there are zero'd prices.
If you're also capable of reading PHP code, look at this: https://github.com/thirtybees/thirtybees/blob/1.0.x/classes/order/OrderDetail.php#L701-L708 it literally sets prices not validating to '', which means 0.000000.
Payment modules should not be involved. While orders are indeed created from a cart at the end of the payment process (class PaymentModule), they'd have to override that whole method.