span.TotalSeconds vaut 36000
Math.Round(span.TotalSeconds) vaut toujours 36000
Par contre, quand tu fais Reverse, tu inverses l'ordre des bytes, donc tu te retrouves avec un nombre négatif : -1601437696
Quant tu essaies de convertir ça en UInt32 (je sais pas trop pourquoi tu fais ça d'ailleurs), ça plante, parce qu'un UInt32, par définition, ne peut pas être négatif...
Enlève le Cast vers UInt32, il ne sert absolument à rien