If you do dff.b = Int8.(dff.b) instead, I think it will work. The difference must be that this is overwriting the entire column (which changes the type), but you were just overwriting the values with dff[:,:b]=Int8.(dff[:,:b]), which left the type as is.
Anyway, let me know if it works.