There is an subscription extension available for the plugin that allows you to set expiration dates, but that is available as a premium at the plugin's support site rocketgeek.com. While it does set expiration based on time periods, the expiration date when set does have a filter hook so it could be filtered to be the first of June of whatever the following year is. You could set up a filter to make this work pretty much any way you wanted.
There is not direct support for multiple subscription levels, but that can be achieved with some custom filters. So for number #2, the answer is kind of "it depends."
Yes, you could integrate with BP. In fact, I know there are some users that do have it set up that way. WP-Members uses user meta fields the same way WP (and BP) do. Ideally, the best way to set it up would be to match up the fields that WP-Members uses with what you have in BP (i.e. get rid of any fields in WP-Members that do not have the same meta key/option name, and add in fields that do match - hope that make sense).