Checking if text is NOT displayed
Your IsElementVisible method can be condensed to:
public bool IsElementVisible(IWebDriver driver, By element)
{
    return driver.FindElements(element).Count &gt; 0
        &amp;&amp; driver.FindElement(element).Displayed;
}

I guess the method IsElementNotVisible should return boolean negation of result of the IsElementVisible method:
public bool IsElementNotVisible(IWebDriver driver, By element)
{
    return !IsElementVisible(driver, element);
}


Boolean comparisons
Expressions x == true and just x are eqivalent.
Expressions x == false and just !x are also eqivalent.
For example, you don't need to write:
if (productIssue == false || productIssueB == false)

you could write instead:
if (!productIssue || !productIssueB)