You're still missing endif's, there has to be one for each "if". It also appears as if you're still exiting the subroutines before you shell out to the uninstaller...

Another thing I just noticed...your code references "ChkInstaller" and "MSIParam", but I don't see where those are.

Structurally, I think something like this would make more sense:

1) Check for Reader 6, uninstall it if it's there.
2) Check for Reader 7, uninstall it if it's there.
3) Install Reader 8.

Really, there's no need for GOSUBs at all, since that would work just fine if you did it as a linear sequence...besides, GOTO and GOSUB generally aren't considered best practice 'round these parts. ;\)