How can I obtain "Month By Month" data?
Likely what's happening here is that your second set of data (after the UNION ALL does not return any data, and so only the first part is returning anything. Because you are passing a 0 for the date, this is 1900-01-01. All of the results are going to get grouped for that date.

Here's a similar mockup, but this one returns data after the UNION ALL

DECLARE @t TABLE
    (
      C1 INT ,
      C2 DATETIME ,
      C3 INT
    );

INSERT  INTO @t
VALUES  ( 1, '2016-01-01', 100 )
,       ( 1, '2016-01-01', 250 )
,       ( 1, '2016-03-05', 200 )
,       ( 2, '2016-02-01', 200 )
,       ( 2, '2016-02-01', 500 )
,       ( 2, '2016-06-01', 200 );

SELECT  YEAR(C2) [Year] ,
        MONTH(C2) [Month] ,
        SUM(C3)
FROM    ( SELECT    0 AS C2 ,
                    SUM(C3) AS C3
          FROM      @t
          WHERE     C1 = 1
          GROUP BY  C2
          UNION ALL
          SELECT    C2 ,
                    SUM(C3) AS C3
          FROM      @t
          WHERE     C1 = 2
          GROUP BY  C2
        ) AS A
GROUP BY C2;