plotstuff=TranslationTransform[π/4{p,0,q}]@(RotationTransform[-π/2,{0,1,0},{π,1,π}]/@(RotationTransform[π,{0,0,1},{π,1,π}]/@Table[{θ,r,((Abs[r])^4)fi[ θ]+2π n/q+(p/q)},{n,0,q+1}]))//Simplify;

Manipulate[Show[
ParametricPlot3D[Table[{θ,r,((Abs[r])^4)gi[ θ-t]+2π n/p+(q/p)t},{n,0,q+1}],{θ,0,2π},{r,0,1},PlotRange->{{0,2π},{0,2},{0,2π}}],ParametricPlot3D[plotstuff[t],{θ,0,4π},{r,0,1},PlotStyle->Blue],
ParametricPlot3D[{Mod[θ+π/2q,2π],1,Mod[q/p θ,2π]},{θ,0,p*q π-0.01},Exclusions->True,PlotStyle->{Thick,Green}]
],{t,0,2π}]

Show[
ParametricPlot3D[Table[{θ,r,((Abs[r])^4)gi[ θ]+2π n/p},{n,0,q+1}],{θ,0,2π},{r,0,1},PlotRange->{{0,2π},{0,2},{0,2π}}],

ParametricPlot3D[Table[{((Abs[r])^4)fi[ θ]+2n π/q+π/p
,1+(1-r),θ+π/4},{n,0,q+1}],{θ,-2π,4π},{r,0,1},PlotRange->{{0,2π},{0,2},{0,2π}},PlotStyle->Blue],

ParametricPlot3D[{Mod[θ+π/2q,2π],1,Mod[q/p θ,2π]},{θ,0,p*q π-0.01},Exclusions->True,PlotStyle->{Thick,Green}]
]

Manipulate[
Show[
ParametricPlot3D[Table[{θ,r,((Abs[r])^4)gi[ θ-t/3]+2π n/p+q/p( t/3)},{n,0,q+1}],{θ,0,2π},{r,0,1},PlotRange->{{0,2π},{0,2},{0,2π}}],

ParametricPlot3D[Table[{((Abs[r])^4)fi[ θ-t/2]+2n π/q+π/p+p/q (t/2)
,1+(1-r),θ+π/4},{n,0,q+1}],{θ,-2π,4π},{r,0,1},PlotRange->{{0,2π},{0,2},{0,2π}},PlotStyle->Blue],

ParametricPlot3D[{Mod[θ+π/2q,2π],1,Mod[q/p θ,2π]},{θ,0,p*q π-0.01},Exclusions->True,PlotStyle->{Thick,Green}]
],{t,0,2π}]

Manipulate[
Show[
ParametricPlot3D[Table[{((Abs[r])^4)fi[ θ-t]+2n π/q+π/p+p/q t
,1+(1-r),θ+π/4},{n,0,q+1}],{θ,-2π,4π},{r,0,1},PlotRange->{{0,2π},{0,2},{0,2π}},PlotStyle->Blue],

ParametricPlot3D[{Mod[θ+π/2q,2π],1,Mod[q/p θ,2π]},{θ,0,p*q π-0.01},Exclusions->True,PlotStyle->{Thick,Green}]
],{t,0,2π}]