How can I force new browser windows to open on my main display?

Have you tried running your browser in fullscreen mode? (Using the 2 diagonal arrows button in the upper right corner of the window)

I have a very similar setup and it works exactly as you are asking.

  • MacBook Pro connected to a Thunderbolt Display
  • Thunderbolt Display is the primary (with the Dock), MBP is secondary
  • Chrome running on the MBP screen in fullscreen mode
  • ⌘+Tab to Chrome, which activates the app on the MBP screen
  • ⌘+N to create new Chrome window, which appears on the primary Thunderbolt display

Right click on Chrome icon on your Dock, select "Options", and check that you didn't have Chrome assigned to a specific monitor. You can select "None" or specify your main monitor, as you prefer.