Ask Laser Byte for a solution. For the first problem, Laser Byte created a Customer Parts table which was similar to a job, but had a unique Customer Part Code and was associated with a particular customer.
We then wrote a series of screens and functions that allowed them to create a job in the normal way and then turn that into a Customer Part. We also gave them the ability to create Customer Parts afresh.
Then, when they add a job, they just look up the customer part number from the customer's order, and the system pulls all those details into the job automatically. No errors!
With the second problem, Laser Byte wrote a series on import programs. These would allow the user to import either CSV files created by Sage or manually, and also Excel spreadsheets created by the customer themselves to a set template. Before they press the "Go" button the system does a test import and shows the user the details of the orders that the system will create. The system also does various pre-import cross-checks to ensure that the files have been formatted correctly for import. This minimises errors, so they just don't exist.