У Вас идёт неправильная работа с переменной поворота, скорее всего в этом ошибка
Вам надо
double rotate = 0;
передавать в метод DrawStar
Как-то так должно получиться
void DrawStar(int level, double x, double y, double r, double rotate)//<---- тут изменение
{
const double offset = - Math.PI / 2;
const double angle = 4 * Math.PI / 5;
Polyline star = new Polyline();
star.Stroke = Brushes.DarkRed;
image.Children.Add(star);
for (int i = 0; i <= 5; i++)
{
star.Points.Add(new Point((int)(x + r * Math.Cos(offset + i * angle)),
(int)(y + r * Math.Sin(offset + i * angle))));
star.RenderTransform = new RotateTransform(rotate, x, y);
rotate += 360/5; //<----тут изменение
if (level < depth)
{
DrawStar(level + 1, x + r * Math.Cos(offset + i * angle),
y + r * Math.Sin(offset + i * angle), r * scale, rotate);//<---- тут изменение
}
}
}