The task of recognizing game units in the screenshot
Machine learning doesn't seem needed, since the image of each unit is always identical.  One approach is to obtain a clean image of each unit, and then use template matching to find all locations where the template occurs in the screenshot.  You might be able to check all locations in the screenshot whether they exactly match the template image (you will probably want to mask out the part where the health appears, as that will obscure the image).  This can be done very efficiently.

To recover the health, you might also be able to do template matching on the numbers 0-10.

The way to tell what resolution you can downsize to is empirically: you experiment with different resolutions and measure the accuracy for each.  There's probably no way to predict without trying it.

If you want to try machine learning, you could try a CNN, or better yet, you could try retraining the YOLOv3 object detector for your particular images (see, e.g., the YOLO project page or here).  You will probably need a larger training set this way, and you'll have to do a bunch of manual annotation of sample screenshots.

Tool and library recommendations are off-topic here.