You have replaced the spark plugs. But have you ever checked your Mass Air Flow Sensor? By removing the two screws, located on plastic pipe between air cleaner to throttle intake, please take a look at it. There is a little filament that reads airflow, it should be orange in color; Due to age and mileage, this filament could be covered with dirt/oil and cause fauls reading.
I fixed a 2000 corolla with the same P0420 before, it was this Mass Air Flow Sensor. After I spray the filament with electrical cleaner, the check enginer light never comes back.