AutoDesk's cryptic API has tripped you up a little. You've got to remember that when working with blocks, there is both a definition and a reference. The definition is what you define when you create a block. You tell it what entities describe it, including any attributes. When you insert that block into a drawing, it is a BlockReference, which inherits from Entity. In your case, you're interested in AttributeReference when walking through the block, because you care about it's position relative to the model space, not just the block it's defined in.
foreach (AcadEntity ent in doc.ModelSpace)
{
var block = ent as AcadBlockReference;
if (block == null || block.Name != block_Name)
continue;
foreach (AcadAttributeReference att in block.GetAttributes())
{
if (att.TagString != "Specified_String")
continue;
doc.ModelSpace.AddRaster(
@"C:\Users\Public\Pictures\Sample Pictures\Jellyfish.jpg",
att.InsertionPoint, 1, 0);
break;
}
}