Copy and paste should never be used except for very limited purposes where there is no alternative. Copy overwrites any data that the current user may have already copied and this confuses and irritates them when your script replaces the data that they copied with data copied by the script.
There is a better alternative: Set Variable (copy) and Set Field ( paste).
But the reason that your script doesn't work is that it should be changing back and forth between a layout based on the table from which your are copying data and a layout based on the table where you want to create new records.
Here's a generalized outline of the needed script, subsitutute your name for mine and add as many pairs of set variable, set field steps as you need:
Set Variable [$ID ; value: OriginalTable::PrimaryKey ]
Set Variable [$Data ; value: OriginalTable::DataField ]
Go To Layout ["New Table" (NewTable) ]
Set Field [ NewTable::ForeignKey ; $ID ]
Set Field [NewTable::DataField ; $Data ]
Go to Layout [original table]
Go to Record/Request/Page [First ; exit after last ]
The above script assumes that you have set up this relationship:
OriginalTable::PrimaryKey = NewTable::ForeignKey
Where PrimaryKey is either an auto-entered serial number field and Foreing key is a number field or PrimaryKey autoenters Get ( UUID ) and ForeignKey is then a text field.
Thank you so much for your kind advice! This worked out very well.