Rick,
If it was just a binary matrix, I think using NOT operator would be simpler.

proc iml;
A = {0 0 1 0 0 1 0 1 0 0 ,
1 0 0 0 0 0 1 1 0 1 };
idx_diff=loc(A[+,]=1);

idx_swap = {2 4};
idx=idx_diff[idx_swap];
A[,idx]=^A[,idx];
print A;
quit;