Can this be further normalized?
I don't see any way you could normalize this further. In fact unless each property could have more than one value I would denormalize a bit by combining the Property and PropertyString tables. 

select I.ImageID, I.Data
  from Image I
  join ImageType IT on I.ImageTypeId = IT.ImageTypeId
  join Property P1 on I.ImageID = P1.ImageID
  join PorpertyType PT1 on P1.PropertyTypeId = PT1.PropertyTypeId
  join Property P2 on I.ImageID = P2.ImageID
  join PorpertyType PT2 on P2.PropertyTypeId = PT2.PropertyTypeId
 where IT.IsoCode = @ImageCode
   and PT1.Name = @PropertyName1 and P1.Value = @PropertyValue1
   and PT2.Name = @PropertyName2 and P2.Value = @PropertyValue2


I haven't tested it, but my guy says that this will perform better than having separate subqueries per property you are checking. If you're really want to maintain the PropertyString table you still could include it in this join.