There's a little trick that might help you. I don't know anything from BuddyPress, so you'll have to adapt the solution as per your need.
WordPress stores the post id of the page which is set as a static front page in an option named 'page_on_front'. Change that option with a value of your choice.
//Hook into init or within your function where you get the dynamic page/post
//Assume the page/post you want to set as front page has an ID = 345
//This check is necessary, if it is not set to 'page' then the latest posts will be shown on homepage
if(get_option('show_on_front') == 'page')
update_option('page_on_front', 345);
Hope this helps!