Script B does exactly what you told it do.
Here we are again with yet another problem resulting from the perform Find [ Restore] feature.
The ONLY find being performed here is strictly your restored find. That's the way a restored find works.
I personally suggest strongly and repeatedly here, to NEVER use this feature, especially if you're asking for free help.
Enter Find Mode 
Set Field [TO1::Year ; Year(Get (CurrentDate) ) ) -1]
Set Field [ TO1::WoodType; "Red Oak"]
Perform Find  NO RESTORE!!!!!
I'm with Bruce. But IF you must use restore, make it your first step then use Modify Last Find and add your new criteria. (in new record/request or in the same request). What you modify depends if you need to find both values (keep in the same request) or either value (place into a second request).
My two pennyworth.
You are mixing two methods to do a Find.
Doing a 'Restore' Find will perform the Find that is saved. Enter Find Mode and then entering a criteria for the Find is a different method entirely.
The Restore will always ignore anything else you have set as Find criteria. You cannot mix the two and get the results you want. Do one or the other, not both.
Personally (and apologies to Bruce) I do use the Restore method a lot - but only in isolation, without trying to add in another Find variable. For example, if I have a Find request with several consistent requests that do not need refining by another Find variable.
For example, if I have a report to do that needs to find records from SupplierX - Not Invoiced - Invoice Value Greater than £100 - For ProductY. Then I believe it is legitimate to do this Find, then include it as a script step using Restore.
Thing is, to understand the difference between a 'Restore Find' and an 'Enter Find Mode' Find!