My software continiously breakpoints in ntdll.dll, then the software continues to run.
This sounds like the Visual Studio debugger is breaking on first-chance exceptions.
When a debugger is attached to a process it sees thrown exceptions before any exception handlers in the process being debugged. This is a first-chance exception and the debugger can be configured to break on it. If the debugger allows the process to continue executing then exception handlers in the process get a chance to handle the exception. If the process does not handle the exception then the debugger will see it again (second-chance exception) and the process will usually be terminated due to the unhandled exception.
The Visual Studio debugger's Exception Settings window can be used to control how the debugger responds to exceptions. It can be reached by Debug->Windows->Exception Settings and looks like this -
It would be helpful if you posted some screen shots of the debugger when it breaks on these exceptions so that we have a better understanding of what is actually happening.