Adding and editing topics was a bit broken - it basically wasn't saving the first post ID when creating a topic. There was also an issue editing it as there's now a post cacahe table that wasn't there a few IPB versions ago. I also added seo forename and last name to the topic table (no idea why there's even a last name field in the topic table as there's nowhere to enter it in the software

).
On line 89 of topics.inc.php change this:
$this->ipbwi->ips_wrapper->DB->query('INSERT INTO '.$this->ipbwi->board['sql_tbl_prefix'].'topics (title, description, state, posts, starter_id, start_date, last_poster_id, last_post, starter_name, last_poster_name, views, forum_id, approved, author_mode, pinned) VALUES ("'.$title.'", "'.$desc.'", "open", "0", "'.$postAuthorID.'", "'.$time.'", "'.$postAuthorID.'", "'.$time.'", "'.$postName.'", "'.$postName.'", "0", "'.$forumID.'", "'.($preview ? '0' : '1').'", "1", "0")');
to this:
$this->ipbwi->ips_wrapper->DB->query('INSERT INTO '.$this->ipbwi->board['sql_tbl_prefix'].'topics (title, description, state, posts, starter_id, start_date, last_poster_id, last_post, starter_name, last_poster_name, views, forum_id, approved, author_mode, pinned, poll_state, last_vote, seo_last_name, seo_first_name) VALUES ("'.$title.'", "'.$desc.'", "open", "0", "'.$postAuthorID.'", "'.$time.'", "'.$postAuthorID.'", "'.$time.'", "'.$postName.'", "'.$postName.'", "0", "'.$forumID.'", "'.($preview ? '0' : '1').'", "1", "0", "0", "0", "' . $this->ipbwi->member->myInfo['members_seo_name'] . '", "' . $this->ipbwi->member->myInfo['members_seo_name'] . '")');
After this on line 101:
$this->ipbwi->ips_wrapper->DB->query('INSERT INTO '.$this->ipbwi->board['sql_tbl_prefix'].'posts (author_id, author_name, use_emo, use_sig, ip_address, post_date, post, queued, topic_id, new_topic, icon_id, post_htmlstate) VALUES ("'.$postAuthorID.'", "'.$postName.'", "'.($useEmo ? 1 : 0).'", "'.($useSig ? 1 : 0).'", "'.$_SERVER['REMOTE_ADDR'].'", "'.$time.'", "'.$post.'", "0", "'.$topicID.'", "1", "0", "'.$this->ipbwi->ips_wrapper->parser->parse_html.'")');
Add this:
$postID = $this->ipbwi->ips_wrapper->DB->getInsertId();
$this->ipbwi->ips_wrapper->DB->query('UPDATE '.$this->ipbwi->board['sql_tbl_prefix'].'topics SET topic_firstpost ="'.$postID.'" WHERE tid="'.$topicID.'"');
After this on line 236:
$this->ipbwi->ips_wrapper->DB->query('UPDATE '.$this->ipbwi->board['sql_tbl_prefix'].'posts SET edit_time="'.$edited.'", post="'.$post.'", edit_name="'.$edit.'", post_edit_reason="'.$reason.'", use_emo="'.($useEmo ? 1 : 0).'", use_sig="'.($useSig ? 1 : 0).'" WHERE pid="'.$row['topic_firstpost'].'"');
Add this:
$this->ipbwi->ips_wrapper->DB->query('UPDATE '.$this->ipbwi->board['sql_tbl_prefix'].'content_cache_posts SET cache_content ="'.$post.'", cache_updated="'.$edit.'" WHERE cache_content_id="'.$row['topic_firstpost'].'"');
These edits fixed it enough for what I was doing, but someone with more time will have to check the tables and see if there's anything else I missed (I know for a fact that topic status isn't saved to the DB even though IPBWI seems to try and set it correctly).