I cannot reproduce your problems. I added your 4 custom fields, with all designated to show as columns and #2 and #3 to show on printed documents, then created an inventory item for one of your books:
Everything appears in order. I add this inventory item to a sales invoice:
The two fields designated to appear on printed documents are there, and in the order specified. I next add the inventory item to a purchase invoice:
Once again, I get the two fields that are supposed to show, in the correct order.
What version of the software are you using (under About Manager)? Current is 17.7.67. Update if you are behind and see if the problem is fixed.
As for your desire to have things show only on sales invoices, that is tougher. It would take some relatively sophisticated programming in a custom theme to have fields associated with inventory items only show on one type of form. What you might do is use sales invoice - line custom fields. But that would require you to enter their contents manually on every line. Line item custom fields cannot be associated with inventory items to be remembered. It’s probably better to live with the two unnecessary (but not incorrect) columns on purchase invoices.