I had some trouble with duplicate and missing values in PI when doing UpdateValues(..) with AFUpdateOption.Replace on some AfValues. The problem seemed to be caused by the fact that the AfValues were not ordered. The result was corrupt data in the PI server (duplicates and missing data).
My question is, why is data not sorted automatically in the SDK? It should be easy to detect any out-of-order values. Alternately you could throw a "Data not sorted" error from the SDK, in stead of risking corruption of data?