JREAM, your basic premise and understanding of C# objects is probably a little bit flawed which is what is causing your confusion.
"In the unified type system of C#, all types, predefined and user-defined, reference types and value types, inherit directly or indirectly from Object. You can assign values of any type to variables of type object."
http://msdn.microsoft.com/en-us/library/9kkx3h3c%28v=vs.110%29.aspx
That being said, it is preferable to use a defined type rather than object whenever possible. In your case, your objects should really be classes, which then in turn makes then reference types that you can consume.
public class O
{
public string test { get; set; }
}
var newO = new O() { test = "cat" };
newO = "dog";
Here, we create a new class, 'O'. We have a single property inside of this class. We can then instantiate the class and access the properties inside of it. Once it is instantiated, we can then access the property as much as we want and reassign new values to it. Hope that helps.