I think the problem is that you are comparing TEXT values vs Numbers in your criteria for the SumIfs.
Here's formulas that will work around the problem.
Grants: =SUMIFS($M$2:$M$11,$D$2:$D$11,">229*",$D$2:$D$11," <334*",$B$2:$B$11,$A15)
Intergv'tl: =SUMIFS($M$2:$M$11,$D$2:$D$11,">334*",$D$2:$D$11," <339*",$B$2:$B$11,$A15)

The Following User Says Thank You to rory For This Useful Post:

That worked perfectly but I don't understand why. I understand >229 but <334 would make me think that I wouldn't pull in any 334's. Additionally, >334 makes sense but <339 seems like I would miss the 339's. Of course when I changed a cell to test it computes just fine. Really thought I would need those "equal to" signs in there but I don't. Super happy this worked but maybe you could explain the why behind it?

The = signs didn't matter because your sample data set did not contain the values on the edges of the range, i.e. 329. However if you do include those values in the data set the results will change incorrectly! Note on the other end it is 334* and w/o the * it will not include the 334! Remember when setting up formulas like this to use data to test the upper & lower range to make sure you have it coded correctly. Thus you should have values in your test data set for 333,334,335 and 329,330,331 to make sure only the correct ones are selected.