Using gawk:
$ awk '
     n=split($0,a, "oo\\+",sep){ 
        for(i in sep) sep[i]="oo:";
        if (match(a[3], /^.{8,}pkp/)) sep[2]="o:";
        for(i=1;i<=n;i++) $0 = (i==1 ? "" : $0) sep[i-1] a[i]
  }1' 
$ awk -F 'oo\\+' -v OFS='oo:' '{for(i=1;i<=NF;i++) printf "%s", $i (i==NF ? ORS : (i==2  && match($3, /^.{8,}pkp/) ? "o:" : OFS))}' 
 
                