Q: When property object get unrooted and marked for garbage collection? I am trying to understand GC behaviour in below implementation.
I return a new object when my property is accessed. If I access my property for a second time, will the first object be marked for garabage collection or will it will be rooted as long as my MyClass object is alive.
(It's a bad implementation I know, but intention is to know about GC.)
public class MyClass
{
    public Custom CustomProp=>new Custom();
}

public class Custom
{

}


A: public Custom CustomProp=>new Custom();

is translated to a getter method by the compiler:
public Custom get_CustomProp()
{
    return new Custom();
}

So there is no reference to the created Custom instance stored inside your class. Nothing to worry about, you (the code you show) don't keep the GC from collecting the object.
But of course: wether the created object is eligible for GC or not depends on what the caller of your property does with the reference. As long as an active reference is kept somewhere, GC won't collect the object.  
And - as Marc commented - there is no such thing as "marking" an object for GC. An object is ready for GC (simply put) if it is no longer referenced.
The fact that your property gets called a second time has no influence on the "collectability" of the previously return instance.
