The metadata of a whole tag is structured into "fields" so that it is easier to judge, what kind of information can be expected in one e.g. ARTIST should hold the name of the artist performing a TITLE.
In MP3tag it is possible to tell MP3tag which field should be filled by using a certain syntax to address the fields - a fairly complete list can be found in http://help.mp3tag.de/main_viewcolumns.html.
In addition there are some pseudo-fields that can be addressed but their contents cannot be modified (like bitrate or length) or it is not really part of the tag (like _filename).
The placeholders for fields have the same name as a field encapsulated with %.
And there is %dummy% which tells MP3tag to ignore that part.
Coming back to the "not work": Probably I got it wrong: I just issued a possible way to get the year copied into the YEAR field - it still stays in the TITLE field as long as the "guessing" does not invoke a re-write of the TITLE field.
e.g. the guessing pattern
%title% - %artist%-%year%
would copy the part for artist and year into the corresponding fields and then overwrite TITLE with the bit that is described by %title% - this way it looks as though some of the contents has been moved ... it has been copied and then been deleted... (which is a move in a way).
So coming back to my idea: my suggestion does not rewrite TITLE so the contents stays the same - but the year should have been modified.
To get rid of the year in the title, you can create an action group that first copies the year to the field YEAR (with the guessing action) and then do a "replace with regular description" for TITLE
Search string: -\d+$
This should delete everything after the hyphen