The best option is to use an INSERT trigger on your master table that obtains the corresponding older row's children and inserts them in the child table.
I'm very rusty at triggers, but something like this:
CREATE TRIGGER tr_master ON master FOR AFTER INSERT AS
INSERT INTO childtable(masterid, childvalue)
SELECT inserted.id, oldchildren.childvalue
FROM inserted INNER JOIN childtable oldchildren
ON oldchildren.masterid = inserted.copiedfromid
)
Since, when the trigger occurs, it doesn't "know" which master record the current inserted record(s) were copied from, you'll need to track the primary key of the original record in a column in the master table (which I've labeled "copiedfromid" here).
"Inserted" is a special table available within a trigger that contains all of the rows being inserted into your master table in that transaction. I used "FOR AFTER INSERT" rather than plain old "FOR INSERT" because I'm assuming your child table's foreign key enforces referential integrity with the master table, so I think you have to only trigger this action after the insert actually occurs.