There is no operation "tag creation" for svn, all folders' names such as tags, trunk, etc - are just convention on standard SVN repository layout. What you call "tag creation" is in truth - a creation of a new svn location (which is specially known on a server side as copied from another location). All operations on files - uploading changes, adding new files, deletion, even changing svn properties - are commit operations. That is why what you need is to write a script and set it as a pre-commit or post-commit hook on SVN server.
According to your well described task I can give an idea on how I see the implementation.
This script should check the path being commited (or after) whether it looks like
some_svn_path/tags/tag_name
, then find the previous tag in this folder
some_svn_path/tags/tag_name_prev
and get the svn revision of it, then get the original path from current transaction (path from which this tag is copied from), probably
some_svn_path/trunk
, and finally get log messages from original svn path from revision of the previous tag till the current revision.