You can remove all your if-statements and use Convert.ChangeType() instead. Alternatively, use T4 to generate the code for you and turn it into a partial class. Anything to avoid duplicating like that.
For an example of this Convert.ChangeType() implementation, take a look at Adriano Repetti's answerAdriano Repetti's answer.