Well actually, they save but get deleted because the app thinks they are too short in length.
In the StopRecording function in the MainForm Class you are referencing duration.Seconds which only stores the seconds component if the TimeSpan. The value will only ever be >= 0 and <= 59.
What you need to reference is duration.TotalSeconds which stores the total number of seconds in the timespan.
Other than that, works great.