The resources statements will not work unless you use the approval type of Virtual Machine, not catalog request.
I'm using the type Service Catalog - Catalog Item Request - Virtual Machine. Is this what you are referring to?
I want to say if I specify only hardware specs in an approval policy it will work, but if I combine them with the OS settings in the same policy it doesn't work. I'm testing that right now. I'll report back shortly.
I can't remember if that's the right type or not, and I don't have a lab handy. If you remove the image profile ones and it works then I guess that's the reason–conflicting or incompatible criteria.
After doing a bit more testing, this was some sort of custom form issue.
The forms had cpu, memory, disk elements on the page. However any user input was being ignored and would pass the default values were where 1cpu, 2gb ram, 40gb disk. I simply removed the form elements then added them back. So now the approval policy is being triggered for both OS and oversized hardware.