• I'd be willing to bet this is the problem.

    AND c.Record_Status <> i.Record_Status 

    Anytime the record gets updated but the status doesn't change the update will not run since the status in the second table will already match, so that row count will be zero and it'll run the insert.