What do you mean with ‘fail’ ? x! grows as x^x, so much slower than 2^x, so the ‘mod’ will chop up the function many many times and it will look like a lot of vertical lines… The values DiscretePlot shown (the integer ones) might not appear exactly in the Plot version, as it samples PlotPoints number of samples which might not be exactly integers…
Edit: Unfortunately we can not see the notebook as we don’t have permission to do so. Therefore I’m speculating. Can you provide a screenshot?
The reason is quite easy: DiscretePlot uses integer arithmetic and will automatically switch to a type of number that can have many many digits. While for Plot it uses MachinePrecision (Real) numbers by default, and because you are working with very big numbers this gets problematic. Therefore by providing a WorkingPrecision that is high it will switch to ‘arbitrary precision’ numbers which can handle the huge numbers you are using.