How do I use a custom port for kotsadm instead of 8800?

You can specify a port for kotsadm in the kURL spec. Example below:

kind: "Installer"
metadata: 
  name: "99ba97b"
spec: 
  kubernetes: 
    version: "latest"
  weave: 
    version: "latest"
  rook: 
    version: "latest"
  contour: 
    version: "latest"
  docker: 
    version: "latest"
  prometheus: 
    version: "latest"
  registry: 
    version: "latest"
  kotsadm: 
    version: "latest"
    uiBindPort: 9000
  ekco: 
    version: "latest"

If you want to use a different port on an existing cluster using kots install there is a --port flag you can pass to use a different port install | Replicated Docs