Key-values can be set for videos in the Advertising module of Video Cloud Studio, but if you want to set them dynamically, you can use the setAdPolicy() API of the player.
Documentation for the setAdPolicy() API: http://developer.brightcove.com/en/articles/dynamic-ad-policies-using-setadpolicy-api
This API will allow you to set key-values for each video as it plays. Get a copy of the current ad policy using getAdPolicy(), listen for the MediaEvent.CHANGE (triggered when a new video has been selected), modify the object as you wish (i.e. changing key-values), and then setAdPolicy() using the new object.
Currently, this is a Flash-only API. For HTML5, you might consider the single video player experience you mentioned.
The player also includes the playlist as a key-value automatically. From the ad server, you can target the playlist ID directly as a key-value without any code required (although this doesn't match the use case exactly with VERTICAL, PARTNER, as your desired flags): http://support.brightcove.com/en/video-cloud/docs/key-value-pairs-passed-video-cloud