Nice job so far. This caught my interest as I have written pixel perfect collision more times than I care to remember and always keen to see what others have done.
To solve your problem with pushable crates on slopes.. you should preprocess the level to remove solid vertical edges that touch. Then when you detect a collision on the x axis, you check the facing edge first. If its been culled you can ignore that tile, otherwise you collide against it.
Does your engine handle pushing multiple crates, e.g. push one crate into another and they all move and collide? I have an engine with that working but it caused a few headaches!
Also just curious, I notice you have blue markers and a green horizontal line, are these used for the collision checks?
Good luck with your sales, this is a very reasonable price for the features you have offered.