every thing is happening because of below interceptors
when you implement preparable interface inorder to prepare method it is called before every method on that class executes. so instead of initializing and prepopulating your form inside prepare method you put it inside input method as you could see this method is exempted from validation by validation interceptor.
which is causing your first problem i.e first time when you are viewing that form it's being validated which we don't want.
next problem is happening because again calling the prepare method before it goes to the register method. now what prepare method does send time is that it reinitializes the form which we difinitely don't want because we want the form data. and after that when validation framework works on it it it sees that form fields are not having proper value that's why it redirects you to input page.
so no prepare method. if you really want a prepare method use an input method and along with that use one method called prepareInput this is a convention in struts2 . and in that case if prepare interceptor calls it before calling input method.
There could be other ways to handle such scenario but i know only this one.