Weird order by behavior on SQL Server 2014 SP2
It is because you need the entire definition for the [TAT] field in the Group By:

CAST(DATEDIFF(HH, DATE_RECEIVED, TEST_DATE) / 24.0 AS DECIMAL(5, 2))


Something like this:

SELECT DISTINCT
        [TAT] = CAST(DATEDIFF(HH, DATE_RECEIVED, TEST_DATE) / 24.0 AS DECIMAL(5, 2))
        , [MonthName] = DATENAME(MONTH, TEST_DATE) 
        , [Week] = DATEPART(WW, TEST_DATE) 
        , [Year] = DATEPART(YYYY, TEST_DATE) 
        , [MonthNumber] = DATEPART(MM, TEST_DATE)
        , PRODUCT_CODE 
        , TEST_PLAN_NAME 
        , [Count] = COUNT(PRODUCT_CODE)
FROM    CO_SAMPLES
WHERE   SAMPLE_TYPE IN ( 'CA' )
        AND PROFILE_NAME &lt;&gt; 'Shelf Life'
        AND RECLASS_NUMBER IS NULL
GROUP BY CAST(DATEDIFF(HH, DATE_RECEIVED, TEST_DATE) / 24.0 AS DECIMAL(5, 2)) ,
        DATENAME(MONTH, TEST_DATE) ,
        DATEPART(WW, TEST_DATE) ,
        DATEPART(YYYY, TEST_DATE) ,
        DATEPART(MM, TEST_DATE) ,
        TEST_PLAN_NAME
ORDER BY [Year] ,
        [MonthNumber] ,
        [Week] ,
        PRODUCT_CODE;