Well, since I don't have much of your code, I'm going to throw a few concepts at you. I'm not sure how your network works, or if you are comfortable with the idea... but think of this.... you could create a server program that sits on the same computer as the database you are working with...and when there is an update to the database, the client will alert the server, then the server, will alert all the other clients. The problem you are going to find is that when all the other clients are told about the update, and they query your database, it's going to be hit with all these clients at once. The best way with that would be to have the client that updates the database tell the server program exactly what change was made, and then send the change to all the other clients. The clients then make the update to their local databases. You are still looking at limitations by way of the number and amount of changes that can be made at once.... You could tell each client program to wait a certain amount of time, and stagger that among all your clients so that the toll on the database isn't that immense. I'm not sure about your limitations on bandwidth either... so that might be a bad idea (using a central server).
That's how I'd do it. I'd build a central server, and have that server monitor the updates in the database. when the database gets updated, the client program sends a notification to the server prog. The server prog sends a notification to the first client, and then when that client is done with it's update, the server prog sends a notification to the next client connected. When that client is done with it's update, it sends a notification to the next client....etc, etc. Problem with this, is the time it may take for a client to update. If you have a lot of clients connected, it might take a really long time from the moment that client1 updates, and client20 updates.
You could have your client app check the size of the database (if it's on a mapped drive, or something nuts) against the size of it's own every so often (in a timer), and if they are different then there must have been a change.... this way isn't very effective though, since the size of the database doesn't have to change when something in the record is changed, and you wouldn't know which record was updated.
Each Method has it's own positives and negatives... (“It has been counted and counted, weighed and divided"). So, let me know what you come up with. If you can find a more effecient method beyond any of these, please... let me know for my own personal future usage.