The code is using the 1/2 of the Diameter minus the tool radius minus the FinalCutDepth to determine the X center - this is causing the offset being experienced.
The code is correct, it is as follows
XStart = XCenter + (Dia / 2) - ToolRad - FinalCutDepth
You will note that it is the X Start position that is being calculated here, not the X Centre as you were thinking. The X Start is, and should be, X Centre plus Rad of circle minus rad of cutter minus cut depth.
X and Y centres are found by the entries in the DROs for such.
XCenter = GetOEMDRO(1072)
YCenter = GetOEMDRO(1073)
So if you have entered Zero for these the centre of the circle will be zero.
The Circle wizard runs fine for me and produces good code so unless you have a different version of the wizard than I do I dont know where your issues are but it may well be in your config, possibly the IJ mode.
Hood