You're holding your racquet face open when you hit, and possibly not doing the correct swing motion and just bringing it across your body.
You can hit flat with the semiwestern grip by taking the ball at above hip level, and just bringing your arm across. On contact everything is square. What I mean by square is your shoulders are pretty much the same height, and your body is like this __ and your racquet is like this -. So it loosk like this __-.
To add topspin, you go from a down to up motion with your racquet. You brush on top of the racquet.
With the semi-western forehand grip, it's all about your swing motion. It's hard to describe, you're bringing it back so your racquet is paralell to the ground then you bring your racquet up so it's adjacent to the ground (open face), then bring it across your body like you're giving yourself a pat across the back.