Well there's nothing available, that I know of, that will accomplish this. At least not free or built into Windows.
One possible solution though could be
Have some type of 'Work In Progress' directory
Have a shared root directory for either all or each end target (Year, Customers, Projects)
Have a Queue directory
Then create a powershell script that runs as a scheduled task. The powershell script would do the following
On an interval it will check the queue directory for a request file (this file will have comma separated values such as the file(s) name(s), the year its for, customer name and project)
The script will then move the request file(s) based on those values
The structure of the Work In Progress and end target should be predictable for the script
Removes the queue request file
This would probably be the easiest way to accomplish what you want