My bet is that you're missing a "g" at the end of your substitution commands. e.g.
$ echo 'abcdefghABCDEFGH' | sed 's/[fF]/%2/g
Without 'g', s/// only replaces the first instance of the search pattern that it finds in each line.
edit: oops, I missed Dark Helmet's post. He's right, maybe the problem is confusion about how to do multiple sed commands at once. The multiple -e options is a cleaner way to do it than the literal newline that I used.