I dont know why you want to work with journal, coz in any way, there should be a bandage delay that doesnt change.. Right?
set %bandagetimer #scnt
set %Factiontime #scnt
repeat
  gosub Bandageself
  wait 1
until = #false
Sub BandageSelf
  if #hits < #maxhits && #scnt > %bandagetimer
  {
    finditem ZLF C_
    for #findindex 1 #findcnt
    {
      event property #findid
      if Enchanted in #property && #scnt > %Factiontime
      {
        set #lobjectid #findid
        set %Factiontime #scnt + 12
        break
      }
      set #lobjectid #findid
    }
    if #findcnt > 0
    {
      event macro 17
      target
      event macro 23
      set %bandagetimer #scnt + 12
    }
  }
return
Update: Right. Now I remembered that you got bleed on OSI shards, so that's why you use the journal. Well it's easy to implement a journal scan in there. Just write if you need help with that.
ps; your gotos make your script hard to read.. you could use subs to make it more readable.