Lots of folks have commented about these kinds of discrepencies. When in doubt always use the numbers on the package (although they aren't always accurate either). FitDay uses an average value for each food.
Cheese is a pretty good example. Since the calorie load depends on the density of the cheese and the kinds of additives a manufacturer may add, there can be a wide margin in the total calories or the % of nutrients. A very dense, artisan, aged cheddar will have more fat per oz, and less water than a mild, non-aged cheddar. And the reduced calorie or otherwise modified cheeses will have lots of other things other than milk to make them taste and feel like real cheese. So may or may not match the foods that FitDay has in its library.
FitDay uses a number for cheddar that is an industry standard, not necessarily the exact number of the item in your kitchen. One thing you can do, if you don't want to create a food from scratch, is to edit an existing food in FitDay to match the product you are using. Then it will be stored in your created foods.
It is a bit frustrating, but all foods have some variability in their nutrient content. One rule I have adopted is when in doubt over estimate the calories. That way you won't find yourself wondering why you aren't losing weight when your food log indicates that you are eating less than you are burning.
I hope that helps.