As you have identified, EARNWEEK is the only continuous “income” variable in the November samples. Keep in mind that respondents not in the universe are given a value of 9999.99 for EARNWEEK. It also might be helpful if you read this User’s Note on calculating poverty rates, especially the discussion of what comprises a family unit. It may be worthwhile for your purposes to combine more than just spouse’s earnings.
Since the CPS interviews households, I suspect the discrepancies you are seeing in the race variable are due to a change in the residents of the interviewed household. To check on the accuracy of linking across months, I attempted to merge the December IPUMS CPS sample to the November IPUMS CPS sample (after sequentially merging both with the respective Basic CPS dataset). The unique identifiers I used were GESTCEN, HRHHID, HRHHID2, PRFAMNUM, and PULINENO (same as from this previous answer). Using age to check the merge, there were 7,982 differences (out of 95,264 households appearing in both months). However, all but 487 of these age differences were an increase of 1 year, which makes sense since a portion of the sample will have had a birthday in the time between the November and December surveys. Taking this into account, less than 100 of the persons that matched on age did not match on race or sex. In other words, less than 1% of the possible matches failed to match when judging by age, sex, and race.
The method you describe for creating a family income variable sounds reasonable.
Hope this helps.