So you submit BEGIN TRANSACTION the first thing you do on your MARS-enabled connection, and that's all that batch contains?
I guess the gist of the error message is that you cannot do that. If you want to have an explicit transaction, you need to have BEGIN TRANSACTION and COMMIT TRANSACTION in the same batch.
Or maybe you should reconsider your choice of using MARS (Multiple Active Result Sets) in the first place. MARS is intended for the scenario where you are reading a number of rows, and you want to update them one by one as they come. This pattern has always seemed dubious to me, and even more so in the time of the cloud, when you should avoid chatty applications.