Mayby an example from some code I wrote can help you in finding your problem...
sorry I've commented it in my native language.
And looking at the code I seem to remember I had to use variant due to a Quirck in the Acad VBA model involving Getboundingbox
Function LimitsSelSet(Selset As AcadSelectionSet) As Variant
Dim Ent As AcadEntity
Dim LL As Variant
Dim UR As Variant
Dim Limits(0 To 1, 0 To 2) As Double
Limits(0, 0) = -0.0000000000001
For Each Ent In Selset
If Left$(Ent.ObjectName, 7) <> "AcDbDim" And Ent.ObjectName <> "AcDbAttributeDefinition" _
And Ent.ObjectName <> "AcDBText" Then 'negeer dimensies attributen en texten
Ent.GetBoundingBox LL, UR
If Limits(0, 0) = -0.0000000000001 Then 'init upperleft, lowerright
Limits(0, 0) = LL(0): Limits(0, 1) = LL(1): Limits(0, 2) = LL(2)
Limits(1, 0) = UR(0): Limits(1, 1) = UR(1): Limits(1, 2) = UR(2)
Else 'get boundingbox selectionset
If Limits(0, 0) > LL(0) Then Limits(0, 0) = LL(0)
If Limits(0, 1) > LL(1) Then Limits(0, 1) = LL(1)
If Limits(0, 2) > LL(2) Then Limits(0, 2) = LL(2)
If Limits(1, 0) < UR(0) Then Limits(1, 0) = UR(0)
If Limits(1, 1) < UR(1) Then Limits(1, 1) = UR(1)
If Limits(1, 2) < UR(2) Then Limits(1, 2) = UR(2)
End If
End If
Next Ent
LimitsSelSet = Limits
End Function
Good Luck.