Your suggestions worked if I changed your script to not use the ID3V2 set of functions to read the tags. Your original script had MP3 being processed with the ID3V2 instead of AUDIO. Which one is right for MP3 files?
Well Both Works Fine. But, Actually ID3V2 is Specific For MP3 and therefore you will have lot of choices for selecting Different Frames of ID3V2 whereas Audio is generalized for all formats and Offers limited Frames. So, use ID3v2 if you require some advance/more features of ID3v2 specific else, you are good to go with AUDIO.
I'm having issues writing modified tags back to the file. I see you again use the ID3V2 functions for MP3. Should I switch to AUDIO again? Do I need to ATOU each tag before calling the DLL to write the tag?
Use ATOU just to convert the filename into the unicode.