You are missing probably the OnPreRender method where you actually performs the binding of your gridview with the received data.
The binding has to be done "OnPreRender" because earlier in the page lifecycle you are never sure if already received the data or not.
Try adding next method in your consumer web part
Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)
ReceivedData As Integer = Me._message.Message
' bind the gridview
MyBase.OnPreRender(e)
End Sub
sorry if the syntax is wrong. I don't know much VB :S
"Dream as if you'll live forever, live as if you'll die today" (James Dean)