I'm not sure that changing the case of folder names should be done automatically, as there's always the possibility of having conflicting tags. A possible solution is to have a playlist with the songs which are not in the correct place (according to their tags), and you can then fix either the folder name or the tag.
For example, my music is organised by the titleformatting:E:\Music\[%album artist%\][[$year(%date%) - ]%album%\][Disc %discnumber%[ - %discname%]\][%tracknumber%. ][%artist% - ]%title%
To find songs in the wrong place I'd search for "$strcmp(%path%,E:\Music\[%album artist%\][[$year(%date%) - ]%album%\][Disc %discnumber%[ - %discname%]\][%tracknumber%. ][%artist% - ]%title%.$ext(%filename_ext%))" MISSING
The only real problem is when the titleformatting produces an invalid file name. Mp3tag has a $validate() function which would work nicely, but there's currently no foobar2000 equivalent so if there's lots of false positives or you want an autoplaylist you'll have to add the exceptions to the titleformatting. This will depends on your folder structure and files so I can't really help, but for reference here's what I use:"$strcmp(%path%,E:\Music\$replace([$if($strcmp($right(%album artist%,1),.),$cut(%album artist%,$sub($len(%album artist%),1)),%album artist%)\][[$year(%date%) - ]$if($strcmp($right(%album%,3),...),$cut(%album%,$sub($len(%album%),3)),$if($strcmp($right(%album%,1),.),$cut(%album%,$sub($len(%album%),1)),%album%))\][Disc %discnumber%[ - %discname%]\][%tracknumber%. ][%artist% - ]$replace(%title%,\,-),/,-,?,,:,-,*,x,>,_,<,_,$char(34),'''').$ext(%filename_ext%))" MISSING