Well, I don't know how to change the titlescreen, as you can't really use the in-game variables as they aren't loaded yet. (for fun, the calling of the title screen is in def pbCallTitle in Script Section Main, and the only things loaded by then are $data_animations, $data_tilesets, $data_common_events, $data_system, and $game_system)
But the other stuff is doable! You could fade to black and warp the player to the new location, then do a quiet save with pbSave(true), which returns true if it managed to save and false if it didn't (watch out for that yeah). Finally a simple exit (or possibly $scene=nil, I see it used in a number of the scripts) to kill the window.
But like seriously, you have to watch out for the fact that the game might have failed to save, because this can potentially lose progress for the player.