My guess is the partial coverage is a big part of the problem. If the coverage is very limited, and there is little structural information, then alignment is more difficult. That applies to both the EPI motion correction and to anatomical-EPI alignment. Very few users will use the volreg method of 3dAllineate for partial data. It's usually more useful for datasets that can distort more across time. If your data is distorted between runs instead, then consider "-volreg_post_vr_allin" to align across sessions with 3dAllineate. You will typically want both align and volreg blocks in your processing.
The lpc and lpc+ZZ cost functions require inverted tissue types between the two datasets, so CSF is bright in one and dark in the other usually. That is typically the case for anatomical to EPI alignment. That contrast can be more difficult to have in a small piece of brain, depending on where in the brain you're looking and the acquisition protocol parameters. The lpa, lpa+ZZ, nmi, cru and ls cost functions typically work better for these low-contrast datasets and for motion correction. The same would apply for volumes that are similar as in the case for the volreg motion correction. Alignment of a dataset will take the dataset out of its original acquisition plane of course, so there will be partial slices as you move towards the edge of your EPI dataset. Usually that's pretty limited though, but it could be important for a very partial dataset.