You need to change your second (&iterate > 1) statement to:
data merge1;
keep year period labor_force employment unemployment unemployment_rate state;
set merge1 &state;
run;
Otherwise, you are always creating a new data set named 'unemploy_merge' with the data from ITERATE=1 and the current file. That is why you only see the first and last at the end.