I found that I had to save my custom ringtones to the device memory (Notifications folder), not the SD card. Then I was able to customize using a ringtone from the Notifications folder, and save the contact.
If you're looking for sound and color, take a look at Light Flow from the Play Store. I'm pretty sure that you used to be able to set custom notifications by contact with Light Flow. It's similar to the old BeBuzz from BBOS. I've not used it in a while now, and they've made some changes, so I can't say with certainty that it will still do the trick. There's a free version to try before you buy.
It's not really all that easy to configure though (you're left to kind of bump your way through it), but you can do it with some puttering around in the app. It also used to be a bit of a resource hog. That may be better now. Good luck.