The -preserve (or -vote) process does not count zero voxels. Even if there is a 1 part per trillion overlap of a nonzero voxel with a zero voxel, the nonzero value wins. And even if the input grids are identical, floating point error means that there can be a tiny nonzero overlap of a voxel with its neighbor. These two effects together give this dilation effect you are seeing upon repeated "3dfractionize -preserve" operations.
The solution is simple - set a volume fraction threshold; for example, "-clip 0.2" means that voxel overlap must be at least 0.2 (20%) before it counts.
As to your second question, there are several ways to extract 1 sub-brick from a dataset and make it into a new dataset. Perhaps the simplest is something like
3dbucket -fbuc -prefix new_dset 'old_dset[0]'
However, this copies the values - if you want a dataset with the same geometry, but with the values all 0, the simplest way would be
3dcalc -a 'old_dset[0]' -prefix new_dset -expr '0'
3drefit -fim new_dset+orig
Also note that if you are using the AFNI drawing plugin, it has the ability to copy a dataset for you (with data or with zeroes) when you open it.
bob cox