Props not receiving shadows happens because under default compile settings, the compiler just looks at the prop's origin, checks the intensity and direction(s) of light(s) received by that point, and shades the prop accordingly. Good enough for most cases, but doesn't account for props that are partially in light and partially in shadow.
For that, you need the -staticproplighting compile option, which calculates and generates light levels for every individual vertex (point where polygons intersect) on the prop. This, along with -staticproppolys and -textureshadows, should be used once your map is far enough along that you want it to look "finished". (Don't bother with them for alphas and early betas.) For an explanation of what these do, see
this article.