The problem is that FPC does have a bug with multiple include files with same name and with Indy, this bug is showing its ugly head.
Sometimes it works to compile the Indy package first and then try compile my app again, but often I have spent hours trying to compile/double-compile/install indy package, my own package and then my app. Even if I get both packages compile - the app can still fail building throwing the IdStreamVCL error.
My guess is that you didn't redeclare everything and when you try to compiled your app with your redclaration-unit it still needs something from indy.In that case the double compile need is not the fault of Indy/Lazarus but of your own app.You should uninstall indy and when your app, in combination with the redeclaration-unit, throws an error, solve that error (without indy).
The problem is that FPC does have a bug with multiple include files with same name and with Indy, this bug is showing its ugly head.You could try the trunk version of FPC to check if it is fixed already or fix your Indy package file so only one directory appears in the include file path option.
fix your Indy package file so only one directory appears in the include file path option.
Create a build script for your application and compile without using Lazarus IDE. The issue, as far as I could tell with the debugging I did, is that the Lazarus Package System is the cause of the problem. Compiling the same project with MSEide, bash script or even fpGUI's demo IDE, and my Indy based applications compile every time and I never get that IdStreamVCL error (clean build, build all etc... they all work).
I will consider hat solution. I would prefer building from inside the IDE though