The odd color behavior is related to an internal color buffer that you are not supposed to see.
Note that you will be able to enable SSAO without render passes in VTK 9.1.
In the mean time, you can try something equivalent to F3D render passes:
lightsP = vtk.vtkLightsPass()
opaqueP = vtk.vtkOpaquePass()
translucentP = vtk.vtkTranslucentPass()
volumeP = vtk.vtkVolumetricPass()
collection = vtk.vtkRenderPassCollection()
collection.AddItem(lightsP)
# opaque passes
ssaoCamP = vtk.vtkCameraPass()
ssaoCamP.SetDelegatePass(opaqueP)
ssaoP = vtk.vtkSSAOPass()
ssaoP.SetRadius(30)
ssaoP.SetDelegatePass(ssaoCamP)
ssaoP.SetBias(0.1)
ssaoP.SetBlur(True)
ssaoP.SetKernelSize(32)
collection.AddItem(ssaoP);
# translucent and volumic passes
ddpP = vtk.vtkDualDepthPeelingPass()
ddpP.SetTranslucentPass(translucentP)
ddpP.SetVolumetricPass(volumeP)
collection.AddItem(ddpP)
sequence = vtk.vtkSequencePass()
sequence.SetPasses(collection)
camP = vtk.vtkCameraPass()
camP.SetDelegatePass(sequence)
ren.SetPass(camP)