First, I am more comfortable with VB.NET, so if I mention something that is irrelevent because it is something else in C# then forgive me. But there are a couple of things that sort of jump out at me and might be worth looking into.1. I don't see you including any SimpleMarkerSymbol or other symbol as a parameter in the .AddValue method of your renderer. The parameters I've always set for a uniqueval renderer are as such:
pUVRenderer.AddValue(pfeature.Value(pFClass.FindField("FlagType")), "", pSym)
Where pSym is an ISimpleMarkerSymbol (or some other type) with its color, style, size, etc.. set up already.2. This doesn't see right or in the wrong location (however, this may simply be a C# thing that I am not understanding):pUVR = ((IGeoFeatureLayer)player).Renderer as IUniqueValueRenderer;
Shouldn't the IGeoFeatureLayer.Rendere property be set at the very last step? That is, arent' you supposed to loop thru the FeatureCursor and set all of the pUVRenderer.AddValue properties first, then finally set the GeoFeatureLayer's .Renderer?3. After an UpdateContents, try a partialRefresh on the ActiveView:
pDoc.UpdateContents()
pDoc.ActiveView.Refresh()
pDoc.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, Nothing, Nothing)