How do I justify the difference in the values obtained via theoretical calculations and simulated calculations with random numbers?
Is it always true that theoretical calculations yield higher values than simulated calculations?
Could the difference be because of an error? Which error would that be?
There are usually a couple of directions on this issue. Results like the central limit theorem and the strong law of large numbers are statements about the long run distribution of a process. But the long run is a somewhat elusive state. If you perform the simulation for $N$ steps, are you in the long run? Usually the answer is no, which is sufficient.
No. This is almost surely a phenomenon which is idiosyncratic the to specific problem you are working on.
If you really don't observe convergence to the theoretical values, you could investigate the simulation logic or the random number generator. It's quite possible that you have a bug in your code which is affecting the output. Convergence to the theoretical values can therefore be seen as an "integration test" on your simulation code. If there's a problem with your RNG, on the other hand, this is a big issue, likely out of your control. Try generating simple uniform random variables from it and doing statistical tests on the output.