The "WHERE (NOT EXISTS" in your SQL-script prevents the INSERT of records that already exist. That is the reason why you get 0 records inserted, they already are there, but with some columns empty (NULL).
What you need is an UPDATE statement that will update the fields (columns) you forgot to include.
Something in the line of
SET forgotten_field1 = Parent_Sc.forgotten_field1,
forgotten_field2 = Parent_Sc.forgotten_field2,
forgotten_field3 = Parent_Sc.forgotten_field3
WHERE People_tbl.[Parent ID] = Parent_sc.[Parent ID] AND
The challenge for you will be to find out which records must be udpated (the new ones) and which may not (those that already existed when you first ran your INSERT script). Perhaps it's sufficient to include in the WHERE clause "forgotten_field1 IS NULL OR forgotten_field2 IS NULL OR forgotten_field3 IS NULL "
With kind regards . . . . . SQL Server 2000/2005/2012
Grabel's Law: 2 is not equal to 3 -- not even for very large values of 2. Pat Phelan's Law: 2 very definitely CAN equal 3 -- in at least two programming languages