As Bulbapedia says here,
Baton Pass switches out the user, passing all temporary stats increases and decreases on to the Pokémon that replaces it in battle. Most volatile status conditions (such as confusion, seeding, and curse, but not infatuation) and volatile battle statuses (such as Substitute, Lock-On, and Ingrain) can also be passed. The move will fail if the user is the only Pokémon in the party that is able to battle.
So yes, Baton Pass does pass on the Substitute. I also just did it in Pokemon Showdown 5 minutes ago.