範囲選択のとき y値がマイナスになる場合にデータの欠落が発生するとのことで y値がプラスになるよう事前に補正してから処理をすれば良いのかなと思って試してみたところうまくいったっぽいです。
・zahyo_emf.batを一行修正
・以下の rubyスクリプトをsjisで保存して全角スペースを半角スペース2個で置換
#!ruby -Ks
#y_plus.rb
#範囲選択の y値がマイナスのときにプラスになるよう持ち上げる
#zahyo_emf.bat一行修正
#(旧)copy jwc_temp.txt temp2.txt > nul
#(新)ruby -Ks y_plus.rb > temp2.txt
$stderr=open("tmp_err.txt","w")
txt=open("jwc_temp.txt").readlines
y=txt.detect{|e| %r|^hn|=~e}.split[2].to_f
yy=(y>0 ? 0 : -y+1.0)
txt.each{|line|
if %r|^c[^n]|=~line
s=line.chomp.split(" ")
s[2]=(s[2].to_f+yy).to_s
puts s.join(" ")
elsif %r|^ [0-9.-]+|=~line
s=line.chomp.split(" ").map{|e| e.to_f}
s[1]=s[1]+yy
s[3]=s[3]+yy
puts " "+s.map{|e| e.to_s}.join(" ")
elsif %r|^hn (.*)|=~line
s=$1.chomp.split(" ").map{|e| e.to_f}
s[1]=s[1]+yy
s[3]=s[3]+yy
puts "hn "+s.map{|e| e.to_s}.join(" ")
else
puts line
end}