Not sure if this is any fast:
awk -v value=0 '
NR==FNR{for(i=2;i<=NF;i++){if($i==value){s[i]++}}}
NR!=FNR {
printf "%s"OFS,$1
for (i=2;i<=NF;i++){if(s[i]>1)last=i}
for (i=2;i<=NF;i++){
if(s[i]>1){
if (i==last) printf "%s\n",$i;$i
else printf "%s"OFS,$i}
}
}
' file file
You might want to set OFS to tab (BEGIN{OFS="\t"}.)