个人看法:
1.やる 和やった,一个非过去时,一个过去时。ほう为名词,前面修饰语是过去时也好非过去时也好,语法上都没有错。同样,「やるほうがいい」和「やったほうがいい」2种说法我觉得都可以。只是习惯和逻辑上用やった更好。因为,一件事情好不好,做完了(过去式)才更好评论。
2.「やったことがある」和「やることがある」,前者为“曾今做过...”后者为“会做...”,这样说可能抽象了点,举个例子:告知義務をご履行頂けなかったら、保険金を支払うことがあります。(若您未履行告知义务,本公司有可能不予赔付保险金。)