• Thanks for all the input. Managed to get it to work.
    So this time, it considers the year.
    Run the code and you will see that 78576109 does not get counted ( He/she only has 2 months continuously )


    --Select top 100 * FROM [EDW].[MEMBER].[MemberEligibilityByMonth] c where
    --c.BeneficiaryID = '0068576102' 
    If object_id('tempdb..#t') IS NOT NULL DROP TABLE #t;
    CREATE TABLE #t( BeneficiaryID VARCHAR(10), EligYear INT, EligMonth INT );

    INSERT INTO #t(BeneficiaryID, EligYear, EligMonth )
    Select '0068576102',2016,3 UNION
    Select '0068576102',2016,6 UNION
    Select '0068576102',2016,7 UNION
    Select '0068576102',2016,8 UNION
    Select '0068576102',2016,9 UNION
    Select '0068576102',2016,10 UNION
    Select '0068576102',2016,11 UNION
    Select '0068576102',2016,12 UNION
    Select '0068576102',2017,10 UNION
    Select '0068576102',2017,11 UNION
    Select '0068576102',2017,12 UNION
    Select '0078576103',2016,8 UNION
    Select '0078576103',2016,9 UNION
    Select '78576103',2016,8 UNION
    Select '78576103',2016,9 UNION
    Select '78576103',2016,10 UNION
    Select '78576109',2016,8 UNION
    Select '78576109',2016,9 UNION
    Select '78576109',2016,11 UNION
    Select '78576109',2016,12

    ;
    WITH T AS
    (
    SELECT *
         ,DENSE_RANK() OVER (PARTITION BY BeneficiaryID, EligYear ORDER BY EligMonth) - EligMonth AS Grp2
       --,DENSE_RANK() OVER (ORDER BY EligMonth) - EligMonth AS Grp
    FROM #t
    )
    --Select * FROM T ORDER BY 1
    ,
    CONSECUTIVE_MONTHS_TOGETHER as
    (
    SELECT
         BeneficiaryID,
         EligYear,
         MIN(EligMonth) AS RangeStart,
       MAX(EligMonth) AS RangeEnd,
         MAX(EligMonth) - MIN(EligMonth) as DIFF
    FROM T
    GROUP BY BeneficiaryID,EligYear, Grp2
    )
    Select * FROM CONSECUTIVE_MONTHS_TOGETHER WHERE DIFF >= 2 --( See Explanation )

    /*
    This solution works when the numbers are in a sequence ( that is the case with my example )
    So if you had any 3 months of consecutive coverage the difference between the largest and smallest must be > 1 -- OR ( >= (2) )
    */