I guess this is what happening in your case:
When you are loading records through dataloader with batch size as 100, each batch size of 100 is treated as separate transaction. Static variables and limits are reset. You will see logs generated for each load of 100 records in developer console.
If you run from developer console, limits and static variables(declared outside trigger) are not reset and everything is treated as one transaction. You will see only one log file generated in developer console. But if you have any static variables defined inside the trigger, those are reset between each processing of 200 records.
We need to see your actual trigger code to see why this is happening. If your actual trigger code is too complex to post, please create a simple example and post.