Merging and sorting overlapped intervals
I can't see the point in having the Create method here, there's no reason why a constructor can't throw an exception in C#. I'd just get rid of Create and move it all into the constructor (making it public).
The name IsOverlapped sounds a bit odd to me. Is is present tense and Overlapped is past tense. Maybe something like IsOverlapping or even just Overlaps.
You have a typo here: &quot;Begin cannot me more than end&quot;. me should be be.
If you have access to expression-bodied members, they can reduce noise IMO:
public bool Overlaps(Span other) =&gt; other != null &amp;&amp; Start &lt;= other.End &amp;&amp; End &gt;= other.Start;

You'll notice that I've also put a null check for other in there at the same time.
You should rewrite Merge to call TryMerge internally:
public Span Merge(Span other) =&gt; 
    TryMerge(other, out var mergedSpan)
        ? mergedSpan
        : throw new ArgumentOutOfRangeException(nameof(other), &quot;Spans must overlap&quot;);

I really value conciseness and I'm happy with throw expressions so I like this kind of pattern. If you don't, this version would also be fine:
public Span Merge(Span other)
{
    if (!TryMerge(other, out var mergedSpan))
        throw new ArgumentOutOfRangeException(nameof(other), &quot;Spans must overlap&quot;);
    return mergedSpan;
}

Note: there's no need to check for null here as we now do that in Overlaps.
Your Normalise method looks good to me. It's a simple algorithm and easy to read.