I'm pretty new to DAX so it's possible that I'm doing something wrong, but your code was calculating the incorrect seconds for me and I made the following changes to get it to work:
fmtCol =
RIGHT ( "0" & INT ( TableName[Duration]/ 3600 ), 2 )& ":"& RIGHT ( "0"& INT ( (TableName[Duration]- INT (TableName[Duration]/ 3600 ) * 3600 ) / 60 ), 2 )& ":"& RIGHT ( "0" & INT(MOD(MOD (TableName[Duration], 3600),60)), 2 )