Can I replace 给 with 替 or 为？
No. The words have different meanings.

Let's look at your first sentence:
他十分坦率地[给]我讲了他的故事 : He openly told me his story.

If we were to replace 给 with 替:
他十分坦率地[替]我讲了他的故事: He openly told his story for me (implying that I was supposed to be the one telling the story).

If we were to replace 给 with 为:
他十分坦率地[为]我讲了他的故事: He openly told his story to me for my sake. 

In general I'm not too sure how you got the idea that they are interchangeable.