Conversion helper with support for enumerations and Nullable
/// &lt;summary&gt;
///     Returns an object of type &lt;typeparamref name="T"/&gt; whose value is equivalent to that of the specified 
///     object.
/// &lt;/summary&gt;

...

/// &lt;returns&gt;
///     An object whose type is &lt;typeparamref name="T"/&gt; and whose value is equivalent to &lt;paramref name="value"/&gt;.
/// &lt;/returns&gt;


I don't see any reason to repeat what was said in &lt;summary&gt; in &lt;returns&gt;. I wouldn't write &lt;returns&gt; here at all. (Unless you're writing a library with very high demands on documentation, like the .Net framework itself.)



underlyingNullableType ?? type


You're repeating this expression several times. You should probably extract it into a variable.



You should be consistent: either use if-else if-else and ignore the returns, or acknowledge the returns and use if-if-nothing.