Try instead:
Sub ChangeLogo()
Dim shp As Shape
Set shp = ActiveWindow.Selection.ShapeRange(1)
' -2 is Mixed; if you're changing a picture fill,, you want 6
If shp.Fill.Type = 6 Then
Call shp.Fill.UserPicture("C:\My Documents\Powerpoint\2011\Images\Logo.png")
End If
End Sub
If that doesn't change the picture fill, add:
MsgBox shp.Fill.Type
after End If to see what type fill you actually have.
Another approach would be simply to insert a picture shape in the first place, have your macro delete it and add a different picture.