I am not completely sure what you want to do, but it sounds like you want a centered dataset on the same grid as some other dataset. A couple options to consider:
1. @Align_Centers, then 3dresample. @Align_Centers has a -cm option to use the center of mass or the default move to the center of the grid.
2. Rigid or "rigid_equiv" - align_epi_anat.py, @auto_tlrc, fat_proc_axialize_anat all offer rigid_body and/or rigid_equiv options. 3dAllineate can also do the same in the way you have done this above. Rigid body aligns uses only 6 parameters for rotations and translations. The rigid equiv method computes the alignment using a full affine but applies only the 6 parameters. This is usually more appropriate for "axializing" the data - getting the data into a similar orientation as the template. The rigid transformation is extracted from the full affine with the cat_matvec -P option.