First question: If all orders for a given customer will have the same value in category, is category defined in the correct table? If you define category in the Customers table instead of orders, selecting category for a customer will not require such a mass update of related orders records.
Keeping the current design, a script could work like this:
Go To Related Record [Show only related records; From table: Orders; Using layout: "Orders" (Orders)]
Replace Field Contents [no dialog; Orders::Category ; Customers::Category]
Go To Layout [original layout]
Thanks very much for the rapid response. It does make sense to define category in the Customers table, but I'm also grateful to know how to do it the other way round as working through it will help me get to grips with scripting.