It is protocol 47 not port 47. gre is another name for protocol 47
iptables -t nat -A PREROUTING -i eth0 -p 47 -j DNAT --to-destination 192.168.0.5
iptables -A FORWARD -p gre -d 192.168.0.5 -j ACCEPT
is the correct command. If the current rules were not saved then restarting will only reload the old ones.