This answer could evolve but as your question stands I see a big issue that is unfortunately poorly documented. -Include and -Exclude only perform their intended functions when partnered with -Recurse. Used without it can yeild 0 results. In your case that would mean nothing is passed through the pipe and Move-Item is not executed.
Currently you are just filtering on *.mp3 which is basic and can just be used with the -filter parameter. While you don't need to I would recommended specifying -Path as well so that you move the files you wanted.
Get-ChildItem -Filter *.mp3 | Other-Stuff ...
You mentioned in comments the following error:
Move-Item : Cannot create a file when that file already exists.
That error is very specific. Either from previous testing or an oversight in new names that file indeed already exists. Two things you can do to help with that problem is use the -WhatIf switch which should quote a file path on the verbose stream so you know where the file would end up.
Second, if you understand the data risk, is to use -Force so that the file will be overwritten by the new one. With Copy-Item it is not a big deal since the original file still exists. Mistakes with Move-Item can be permanent.
-include.... that works better with-Recurse. Change it toGet-ChildItem -Filter *.mp3or just remove the parameter nameGet-ChildItem *.mp3. I think that Move-Item is not getting anything from the pipe.-Forceto overwrite (use with caution) and-WhatIfto help with testing.