proc sql;
create table want as
select *, case when lowcase(mom) = lowcase(mom_new) then 'correct' else 'wrong' end as Check_mom
from A;
quit;
I am inferring from the example data that differences in letter case are not to be used to signify a non-match. If that is incorrect, then this code will fail.
The CASE WHEN statement should illustrate how to do this for the "mom" variables, and it should be simple to add another CASE WHEN statement for the other two variables that need this.
This could also be done with a DATA step with a different syntax.