Thanks. On the subscriber, the %computername% and @@servername information were identical. On the publisher they were identical except that @@servername had \instancename on the end.
I created the aliases as you suggested.
However, it is still not working. I ran a Profiler trace while the connection to the subscriber was being attempted, and then did a search through the trace for the name of the subscriber. In nearly all rows where it was found, the value for hostname was the name of the cluster node and not the name of the virtual SQL server.
This leads me to believe that if I get the IP address of the cluster node allowed through the firewall (remember at the moment that only the SQL IP address is allowed) then it might work. Would you agree with that?