I do this 3-4 times a day ...
My yahoo contacts disappear on a regular basis from my iPhone. I know that by looking at my latest phone calls; no names, just raw numbers means that the contacts are lost.
I go through the process of deleting yahoo contacts:
Settings->Mail, Contacts, Calendars->Yahoo, turn off contacts.
The iPhone now asks me if I want to delete my yahoo contacts. I press "Delete from My iPhone".
Next, I now switch contacts to on.
I then go to Contacts->Groups, press the refresh button.
Before you think what I have is a solution, think again: I do this 3-4 times a day and it is not enough.
It has become so bad that I will not even Add to Contacts phone calls or emails; I just manually add them to Yahoo every time. Then run the repeat-rinse cycle again.
Yahoo will not listen; their technical support ask me to do their delete account, rejoin game and the contacts don't disappear while on the call, only later.
So I call them back and they make me go through the same process again.
They KNOW that it is a problem but will not help. They just make me waste countless hours.
Apple: I am sorry to say but this is the ONLY issue where Apple Support has not helped and pretty much wasted more than a few days on this.
One of you, Apple or Yahoo, need to fix this. This is basically very OLD technology