It turns out I had multiple contacts for the people I was trying to set custom ringtones for. My mom, for example. I tried combining the contacts-- but that didn't work. I just deleted all her contact info and made one new one. Worked like a charm.
When I apply different ringtone to a contact, it still rings with the default phone ringtone, even though it shows the other one is active. This is not a custom ringtone, just one of the Apple ones, so I don't understand it.