First: Avoid making fields and properties called "Value". Value is already a keyword in C# so trying to a make a field with that word is going to cause nothing bug grief.
Second: Is there a reason you're using a struct instead of a class? Generally in C# you don't see a lot of struct use unless there is a very specific reason for it, generally because of some interaction with an API/DLL written in a language that needs them.
Notice here that if you use a class instead of a struct it works as expected:
Structs are very weird, and mutable structs even worse to deal with, because you're actually dealing with copies of the struct. Rather than repeat a bunch of explanations easily found with a search for C# struct property vs field, I'll just direct you to a good explanation about it so the author of that article can get the credit they deserve. Read this article