as I have no documentation with the correct usage of the .dll, I'm kinda shooting in the dark. Removing the Addhandler and doing it through design-view worked a charm. The event is now firing as expected.
The problem I'm having is I don't think I am supposed to create a new connection for each camera with separate logins etc..

I think I am supposed to connect using:

camera.DLLPath = Application.StartupPath & "\TL4516UL.dll"
camera.IPAddress = "100.100.100.100"
camera.Port = 53705
camera.UserName = "admin"
camera.Password = "admin"

I think I need to set all that and then connect, and while connected get a different cameraID for each ActiveX control.. I'm just not sure how to do that

Pseudo of what I think should be done

Set properties for the connection
Connect
Load 16 Form instances
Load a different CameraID for each form