Worksheet Protection block Refresh. You're only solution that I know of is
to create a VBA macro which runs the refresh command after it unprotects the
sheet and then reprotects it.
Sub RefreshPT()
ActiveSheet.Unprotect Password:="x"
Set pvtTable = ActiveSheet.Range(ActiveCell.Address).PivotTable
pvtTable.PivotCache.Refresh
ActiveSheet.Protect Password:="x"
End Sub