The first line after your "Assume g(h^k)=(h^k)g" was unjustified. You hadn't yet given a reason for asserting that g(h^(k+1))=(h^(k+1))g. In fact, proving that statement is the goal of the induction.
Prop1: Let g,h in group G such that gh = hg. Then for all integers n>=1, g(h^n)=(h^n)g.
Proof: By induction. Define Statement(n) = "g(h^n)=(h^n)g"
Statement(1) is true, since gh=hg is given.
Assume Statement(k) is true for some k>=1. Then g(h^k)=(h^k)g. Multiply on right byh: (g(h^k))h=((h^k)g)h.
Now associative property of group operation gives: g((h^k)h)=(h^k)(gh). But (h^k)h=h^(k+1) by def of exponent, and gh = hg is given.
Thus g(h^(k+1))=(h^k)(hg). Apply associative again to the RHS, getting g(h^(k+1))=((h^k)h)g and then again note that (h^k)h=h^(k+1).
Thus g(h^(k+1))=(h^(k+1))g. Thus Statement(k+1) is true (since that's exactly what Statement(k+1) asserts).
Thus have proven that Statement(1) is true, and also: if Statement(k) is true for any k>=1, then Statement(k+1) must also be true.
The line above means that we've proven by induction that Statement(n) is true for all n>=1.
Thus g(h^n)=(h^n)g for all n>=1. QED