I have completed the first one manually. I thought of a program to do it but I don't know anything about programming outside of vb6. That won't do me much good as this is a Linux machine
I've first ran Fslint to remove any duplicates that I may have. ( Great program unless the duplicates are of different sizes or something else is different) I then set up my folder structure and started *gulp* drag and drop. took me all day to do the one folder

I did find a few duplicates and was able to eliminate them.
If you have a better way then by all means share