This is a globalisation thing. In one culture "1,234" is 1234 and in another it is 1.234. The computer is using whatever its current culture is so that might be in the settings somewhere, in the OS etc. If you want to use a specific culture then supply it in your TryParse method. For example if you use German (de) that recognises "14,8" as "14.8". So use your intended culture or change the general culture of the context your code runs in.
public static decimal CustomDecimalParse(string value)
{
decimal number = 0;
return Decimal.TryParse(value, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.GetCultureInfo("de-DE"), out number) ? number : 0;
}