Well, since your question is to determine whether 2 block definition have the same geometric entities, you simply need to compare each element entities in the block definition by their geometry, besides comparing the common block definition properties first: such as Count/Origin/Layer/Color/LineWeight/LineType...
Depending the type of the element entity, comparing the geometries would be different, some are quite easy (Line, Circle...) some might be harder (Polyline, Spline...). For example, for line, you simply compare 2 lines' Start/EndPoint, or Circle, you simply compare Center and Radius, for LwPolyline, you compare each Vertex and the bulge at the vertex...
Something like:
Dim ent1 As AcadEntity
Dim ent2 As AcadEntity
Dim theSame As Boolean
For Each ent1 in BlockDefinition1
theSame=Ture
For Each ent2 in BlockDefinition2
If IsGeometryTheSame(ent1, ent2) Then
theSame=False
Exit For
End If
Next
If Not theSame Then Exit For
Next
Private Function IsGeometryTheSame(ent1As AcadEntity, ent2 As AcadEntity) As Boolean
Dim theSame As Boolean
If TypeOf ent1 Is AcadLine Then
theSame=CompareLines(ent1, ent2)
ElseIf TypeOf ent1 Is AcadCircel Then
theSame=CompareCircle(ent1, ent2)
Else If TypeOf ent1 Is AcadArc Then
...
EnseIf..... Then
.... ...
EnseIf..... Then
... ...
End If
IsGeometryTheSame=theSame
End Function
Private Function CompareLines(ent1 As AcadEntity, ent2 As AcadEntity) As Boolean
If Not (TypeOf ent2 Is AcadLine) Then
CompareLines = False
Exit Function
End If
Dim line1 As AcadLine
Dim line2 As AcadLine
Set line1=ent1
Set line2=ent2
'' Compare startpoints and endpoints of the 2 lines here
CompareLines=[result]
End Function
Well, there could be quite some code, depending how many different types of entities you expect to come across in the block definition. If the block definitions have nested blocks, you would do it recursively (hoping that is not the case of yours). The the code logic itself is rather straightforward: if you want to distinguish entities by its geometry, you need to compare the geometric information.
Since you also post the same question in the .NET forum, I'd say, the logic of comparing geometries would be the same, except for the code using Acad .NET API to reach the block definition and entities in it.