はじめまして、Takaseと申します。
おそらくですが、割引率の計算に問題があるように思われます。
割引率は下記の計算で出すことができます。
(割引前価格 - 価格) / 割引前価格 * 100
liquidに合わせて考えてみると
割引前価格 → product.compare_at_price
価格 → product.price
となり、計算式に当てはめると下記のようにになるかと思います。
{% assign discount = product.price | minus: product.compare_at_price %}
{% assign discount_percentage = discount | divided_by: product.compare_at_price | times: 100 %}