You mentioned you have an exclamation point next to your files that will not plan. When tracks in iTunes display a it means the file cannot be located; it may have been moved or deleted. For this issue, we will need to refer to the following article:
Hey there. I'm having this exact same problem. In my case, I can vouch for the fact that, despite what the exclaimation mark usually means, that's not the case. The reason I say that is becuse when I play the tracks from the library on the resident machine, the tracks play just fine, However, when I play the tracks from another computer using Sharing, the mark appears. So, the instance of iTunes on the resident machine can find the files and play them, but when that exact same database is accessed from another machine, those songs are AWOL. The songs are in the iTunes directory, iTunes is managing their location, and they don't change location just to sneak away from a remote access. So, I'm wondering what gives. There are only two variables in my case. 1) They are FLAC encoded to ALAC using Permute - the only songs in my library I've used Permute for and 2) They were added today - the only songs I've added today. The former indicates some kind of odd metadata issue, as alluded to above. The latter indicates, what? Perhaps permissions on those songs when handed over from Permute? I don't know...
So, I just updated to the latest version of iTunes (11.1.0). The issue is *slightly* different. Now, the songs just aren't playing on share. They still play on the home library. But they don't play on a remote, sharing computer. The difference? No exclamation mark, just... no playing. There has to be a metadata issue that Home Sharing jsut hates. I tried to use MetaZ and a few others, and they won't let me open the metadata on any of my files to trim the errant piece(which I suspect is a piece of metadata referred to in this thread), so I'm at a loss.
I had the same problem, and managed to solve it this way:
1. First off, in iTunes, go to preferences > general > import settings and choose Apple Lossless Encoder.
2. Select the ALAC you imported from Permute, right click and hit Create Apple Lossless Version (keep the files selected until conversion is completed)
3. Once conversion is completed, right click and hit delete. This will delete the original files that weren't working, and you should now be left with working ALAC files.
Hope this works for you as well! :-)