I was thinking just querying the data twice with a union statement
would give you two rows per item each labels as an open or closed and making the open and close dates into the same column.
you an then do a disctinct count of the primary key (PkID) for your numbers based on the date grouped as a month
select PKID,Cat, Subcat, Priority, OpenDate as NewDate,'Open' as countype
from table
union
select PKID,Cat, Subcat, Priority, CloseDate as NewDate,'Closed' as countype