There's a really annoying glitch when it comes to setting up custom ringtones / notifications. If you unmount your SD card at any time your custom tones suddenly become unavailable. It still says they are there but just try and play one, they're not. The problem is that they are all, by default, stored on your SD card. So until you restart your phone you will just hear the phones default ringtone or notification even if your SD card is mounted again.
Either never unmount your SD card and deal with it. Or if you're like me, and that's not an acceptable option, all you need to do is move the ringtones / notifications to you're phones internally memory.
1. Make Sure Your Phone is Rooted (If your phone isn't rooted, See My Guide On How To Root Your Phone)
2. Download Root Explorer and Install It (In my opinion this is most user friendly root explorer out there and is available in the Market)
3. Open Root Explorer and Allow it Superuser Permission.
4. Navigate to where your Ringtones / Notification are saved on your SD card. (Default location is: /sdcard/media/audio)
5. Cut them with the Multi-select tool. (Menu, Multi-select, pick your files, then select move at the bottom of the screen)
6. Navigate to where they are stored on your phone (Default location is: /system/media/audio). Then there are sub-folders what what type sound they are. (I.E. Ringtones, Notifications, Alerts, etc.)
7. Mount the folder as R/W (This allows write access)
8. Paste your sound files into the desired location. (Click Paste at the bottom of the screen)
9. Restart your phone.
You will now be able to see and set the new Ringtones / Notifications that are stored on your phone!