Did Tony's explanation and example not help?
http://www.theswamp.org/index.php?topic=41720.msg468319#msg468319 Also I think you are looking at the Entity.BlockName property.
That just returns an entities Owner's name.
Remember ModelSpace and Paperspace are BlockTableRecords just like any other block but contain actual layout objects instead of being empty for blocks you create.
So unless you are looking at the BlockName property for entities contained inside BlockTableRecords that are created by users then the BlockName will always be Model, or a paperspace BlockTableRecord.
When looking at BlockReference its BlockName will be which BlockTableRecord it is contained in.
A BlockReference pushes different transformation matrixes into graphic pipeline that pertain to its info about position, scaling, rotation, etc...
So a BlockReference tells its owner(Blockname = owner name = Model or paper(unless a nested block))
to ask another BlockTableRecord to draw the entities it Owns with transformation applied to them.
Since it does that BlockReferences could only differ by scale factors, rotation, position, that are drawn from same BlockTableRecord.
So a BlockReference always tells its owner to use the BlockTableRecord to draw it at the location of its BlockTableRecordId.
The BlockTableRecord at the location of its DynamicBlockTableRecordId are the same unless it contains parameters and actions that have been invoked to modify the BlockReference.
If so it then creates a new BlockTableRecord and modifies entities inside it to represent the changed parameters or actions invoked, which will be the BlockTableRecord at AnonymousBlockTableRecordId and its BlockTableRecordId wild be the same as anonymous one.
In short
-Block name will be its owner
-The BTR at DynamicBlockTableRecordId location modifies entities inside it the AnonymousBlocktableRecord and will create it for first modify
-The BTR at AnonymousBlocktableRecord location is for a different representation of the BTR DynamicBlockTableRecordId location.
-The BTR at BlockTableRecordId will either point to the same location as Dynamic or anonymous one and the owner will draw the one it points to.
If I understand your question correctly the answer and extension method Tony provided should be your solution.