I'm a little confused - when you say "prices can be displayed as a range" do you mean Magento can be configured to display the range? I can't find any setting that would do that (in 1.9.1), so I am assuming you are doing the range generation yourself.
Maybe :
$tierPrices = array();
// returns an array when no qty is passed
$tierInfo = $product->getTierPrice();
/* use afterLoad for load tier price to product object whenever
product collection does not contain tier price in collection-*/
if (is_null($tierInfo)) {
$attribute = $product->getResource()->getAttribute('tier_price');
if ($attribute) {
$attribute->getBackend()->afterLoad($product);
$tierInfo = $product->getData('tier_price');
}
}
if (is_null($tierInfo)) {
$attribute = $product->getResource()->getAttribute('tier_price');
if ($attribute) {
$attribute->getBackend()->afterLoad($product);
$tierInfo = $product->getData('tier_price');
}
}
foreach ($tierInfo as $tierPrice) {
array_push($tierPrices, $tierPrice['price']);
}
$maxTier = max($tierPrices);
$minTier = min($tierPrices);
Then push the $maxTier and $minTier into the array of prices you are creating the range from, or compare them against the existing high / low values?
Of course, this could be totally off base depending on how the range is generated.