What do you mean it is "custom" and "stored on the device itself"? Also, are you sure you haven't accidentally or purposefully cross-linked certain contacts with Facebook or something with some other ringtone specified somewhere else, somehow?
As long as you are running the Gingerbread official update, this should be a no-brainier. Upon boot your phone will automagically index all the sound files on your internal and external (SD Card) memory. It is good not to have duplicate ringtone files on your device. In other words, only one copy.
Where to put them? Lots of old wives tales here, anywhere should do. However, just for completeness, since mine work well, I'll describe my arrangement. I have put mine in a ringtone folder like this (I had to create all these, they weren't there by default) on my SD Card.
{sdcard}
media\alarms
media\notifications
media\ringtones
Works for me. However, like I said, any folder should do. I created the folders by using Astro File Manager which I downloaded from Google Play. You could do it on your computer via an SD Card adapter.
-Frank