I have a non realtime application where I need to run a bandpass FFT filter on a data array of between 5k and 10k data points. Do I break it up into (say) 256 point chunks, run the FFT on that and simply move onto the next 256 items, or is that too naive?
You need to know the length of the impulse response of your bandpass filter, and use an FFT longer than 256 by that length (to prevent circular convolution boundary artifacts). Combine the longer FFT results back into a sequence of length 256 windows by overlap-add or overlap-save.
I am not sure I understand your question, and I am not sure whether you are looking for expert help with a rather esoteric filtering problem, or if you are new to digital filtering.
I am guessing you are new to this subject and you don't realize there is a much simpler way to filter data, other than with the FFT approach. If so, take a look at this: http://www.iowahills.com/
Try using either the FIR or IIR programs (free) so you can see how easy filtering is done by using the more standard convolution approach. It will take just a few minutes to design a bandpass filter and test it on your data. There is also source code available that shows how to implement FIR and IIR filters in C.
Please ignore this if you must use the FFT approach.