The key is to use one auto-enter feature or another to copy the relevant data or calculation result into a field. Then Subsequent changes do not affect past records.
Example 1: Put your hourly rate in a global field. Then define a rate field in your invoice or line item table (There's more than one way to do this depending on how you need your invoice to work) with an auto-enter calculation that copies the current value of the global rate field. THen set your calcualtions up to use ths value to compute costs. To change your rate, edit the global field and you won't see any existing invoices recalculate to use this new value, but a newly created record will use the new rate.
Example 2: Put the value in a related table and use a looked up value setting to copy the value. THis is often used to copy unit price info from a table of products in an invoicing system. To change a price, you edit the price in the product table.