I still don't know why the imports sometimes showed all records, instead of just the found set.
It was resolved by setting up two more Table Occurances - one each for Orders and OrderItems.
Then the appropriate records were selected in those TOs. The imports into Invoices and InvoiceItems worked as advertised.
Maybe this will help someone else.
Each table occurrence has it's own found set. Thus if you perform a find on a layout referencing Table Occurrence A, but import by selecting Table Occurrence B (with both referring to the same data source table), you will get the found set current for Table Occurrence B which might not be the same found set you created via Table Occurrence A.
Also, if the file is closed at the time Import Records does its thing, you get the entire table instead of the current found set so that's another way this could happen, but your description of a script to find the records first would seem to preclude that possibility.