If code is working inconsistently try checking the order of the property settings. This can happen because changing a property can have side effects on other properties. For instance, the code
With DialogSheets("Wiz4").DrawingObjects(GWiz4ChartName).Chart
.HasLegend = True
.Legend.Top = 93
.Legend.Position = xlRight
End With
will not work correctly because setting the Position property to xlRight also changes the Top property. To set the position of the legend to the right side of the chart and adjust the location of the top, set the Top property first, then change the Position.