Automatically calculate fiducial point for leadfield

Now, I understand, because here we use affine co-registration which is linear transformation, so the shape of the individual head in MNI space is still different from template.
The major part is the back side of head,it may be caused by the fiducial point does not cover information about this part.

The head of your subject and the head surface from the MNI template are different. Different shape, different size. This is not a registration issue, no matter what you do, you will never have them match.

Therefore, it still need to adjust electrode position manually.
So can nonlinear co-registration solve this problem here?(to avoid manual adjustment)

The position of the electrodes on each subject is different. If you don't have the information about the position of the electrode cap on the patient head, I'm sorry there is no nonlinear magic you can do to recover it.
You do have to set manually the position of the cap on the subject head, just like you did when put it on the participants' head before the acquisition. Right-click on the channel file > MRI registration > Edit, then try to place it in a similar way to what you did in real life on the participant. If you have some pictures of the participants with the electrode cap on, it could help.