The harmonic cannot be sharp or flat, unless the string itself is duff. Start off by changing at least this 'G' string, or the whole set if they're more than a few months old. Let the strings 'bed in' for a week or so of playing, then check again the intonation.
It's not necessary, nor a Good Idea, to have too much excess string wound around the tuning post. Ideally, enough for three or four wraps does the job. It's best tto feed the string end through the hole in the post, leaving enough slack to get a few cms above the fingerboard. Then wind the string onto the post, with the first turn above the hole. Once this first wrap is on, hold the string down above the nut so that the following turns cross the first one and the windings are below the hole. This will lock the string in place, once tuning tension is achieved. The excess string is to be cut off, about 1 cm from the tuning post.
Try this technique out a couple of times 'dry', to get used to judging the amount of slack required. Too much slack means too many winds on the post. Too little means not enough. The 'sweet spot' is three or four turns wound onto the post.
Once all the strings are on, and the guitar tuned to pitch, I take each string in turn at its mid-point, and lift the guitar off the bench (gently but firmly...) by this one string; this 'beds in' the string at each end, and gives me tuning stability from the outset. After this suspension, tune back up to pitch and it's Good to Go. Now the harmonic test can be done again; the harmonic will be the exact octave of the open string.If the open string is tuned correctly, the harmonic will be (must be...) spot on. The note at the 12th fret should sound the same as the harmonic.
Hope this helps.