The .NET Client API gives you UNCHANGED, even in DISTINCT mode, when a field value is the same as the previous message. This is a message compression strategy. You should simply cache the latest message and use it to get the unchanged values. It should be a straightforward task.

Notice that such “uncompression” is performed automatically by the Web Client, but not by the .NET Client.