no clue why, it didn't happen on my system.
i would always prevent using function definition within a dynamic environement since function evaluation can be done using Initialization or out side the manipulate command. If the input of the function is a dynamic parameter the function will reevaulate anyways.
Manipulate[
l = p/r;(*Drawing hole radius as a percent of drawing disk radius*)
k = r/R0;
(*Drawing disk radius as a percent of stationary outer ring radius*)
r = Clip[Round[r], {1, R0 - 1}];
p = Clip[Round[p], {1, r - 1}];
ParametricPlot[{
Fx[t1], Fy[t1]}, {t1, 0, R Pi},
Epilog -> Circle[{0, 0}, R0],
PlotRange -> R0 {{-1.1, 1.1}, {-1.1, 1.1}}]
,
{{R0, 32, "Stationary ring inner radius"}, 10, 200, 10,
Appearance -> "Labeled"},
{{r, Round[R0/2], "Drawing disk radius"}, 1, Dynamic[R0 - 1], 1,
Appearance -> "Labeled"},
{{p, Round[r/2], "Drawing hole radius"}, 1, Dynamic[r - 1], 1,
Appearance -> "Labeled"},
{{R, 30, "Number of rotations"}, 1, 150, 10, Appearance -> "Labeled"},
{l, ControlType -> None}, {k, ControlType -> None}
, Initialization :> {
Fx[t1_] := R0 ((1 - k) Cos[t1] + (l k Cos[((1 - k)/k)*t1])),
Fy[t1_] := R0 ((1 - k) Sin[t1] - (l k Sin[((1 - k)/k)*t1]))
}
]
Also using module within manipulate can be prevented by using the local parameters as manipulate variables without a control. this also localizes the variables, not sure but DynamicModule could be used instead if the parameter definitions should be dynamic..