This is a known hard problem, determining what rectangles can be tiled with certain pieces.
However, if you're building puzzles and can control the pieces, it's the opposite, constructive problem, and easier...
Build a solution constructively. Take a few pieces you like, and fill the puzzle however you want. Then throw in enough single-squares to fill it out, and you have guaranteed that there is at least one solution. Or rather, include some small pieces in your allowed set of pieces.
As for solving/laying out the pieces, a typical brute force approach is to fill it from left to right, then top to bottom. Find the first open cell (numbered L-R, T-B) and try to put in your allowed pieces in their allowed orientations (8 orientations for an asymmetric piece if you allow flipping). Perhaps check first large allowed pieces, and resort to smaller ones if necessary. When you reach a state you don't like (dead end, too many small pieces, or what not) then backtrack. If a given grid/piece set doesn't meet your criteria, that is, it backtracked all the way without finishing, try a different rectangle and piece set.
One way to make a puzzle "easier" could be to trade bigger pieces for more smaller pieces like monominoes and dominoes, since this will leave more ways to fill in the last holes. Or, equivalently, build a solution that favors those smaller pieces.
Some noted polyominologists include:
==> http://ee.usc.edu/faculty_staff/faculty_directory/golomb.htm Golomb originally coined the term "Polyomino"
==> http://www.eklhad.net/polyomino/ Dahlke has solved quite a few rectangles filled with identical pieces (a particularly rare tiling form)